2

我正在寻找具有以下功能的“实体管理器”(见列表)。

我觉得奇怪的是,有这么多软件项目的核心是 UI 和业务规则,而不是聪明的实体管理,但我还没有看到一个单一的实体管理系统是“标准”。
哦,我见过一些,但没有一个接近下面的功能列表。最值得注意的是,核心经常缺少级联和验证,水平缩放和缓存失效通常作为“学生练习”而图表性质通常受限于父/子,或者,如果幸运的话,受限于 DAG (有向无环图)。

我缺少什么聪明的东西吗?还是我注定要自己写这个东西——就像其他人一样(并且可能因为时间限制而满足于不太理想的状态)?

以下是功能列表,至少在我看来,这些功能必须融入实体管理的“核心”才能真正正常工作:

  1. 基于图:关系是第一级公民,两个节点之间的多重关系(标记图),可以计算生成树和闭包。
  2. 数据库绑定 - 或者更确切地说,不是内存绑定。可以在内存中保存缓存,但必须能够轻松包含 100m 实体和关系。
  3. 水平扩展——这意味着它知道如何从多个应用服务器访问数据库、使用锁定(乐观或悲观)并使来自另一个应用服务器的更新缓存无效。
  4. 支持事务性工作 - 通过在内存或数据库中收集事务。
  5. 在单个事务的范围内支持可插入的业务规则级联(例如,如果 A 已更改,则 B 也必须更改)
  6. 支持可插入验证(例如,如果 B 存在,则不能删除 A)。
  7. 支持可插拔授权(例如用户U1不能改变A/用户U1不能改变A,因为这会导致B改变[级联]而用户U1不能改变B)。
  8. 发出更改事件/维护更改日志(例如,可以在更改后启动工作流)。
  9. 元数据(如果存在)应该可以通过“数据”而不是代码进行配置。
  10. 无需停机升级(“云就绪”,对吗?)
  11. 纯Java。
4

1 回答 1

0

我没有亲自使用过这个 - 但从我读过的内容来看, neo4j可能符合您的所有要求

于 2012-08-14T15:08:56.977 回答