2012-08-14 19 views
2

我正在寻找具有以下功能(请参阅列表)的“实体管理器”。实体管理器 - “云准备好”,“图形”,“自我验证”

在我看来,有这么多的软件项目,在他们的核心,是一个聪明的实体管理的UI和业务规则,但我还没有看到一个单一的实体管理系统是“标准” 。
哦,我已经看到了一些,但他们都没有接近下面的功能列表。最值得注意的是,级联和验证通常在核心中缺失,水平缩放和缓存失效通常被留作“对学生的练习”,而图形性质通常受限于父母/孩子,或者如果幸运的话,会被DAGs (定向无图)。

有什么聪明的,我失踪了?或者我注定要自己写这个东西 - 就像其他人一样(并且可能因时间限制而不太理想)?

这里的,至少在我的感觉,必须要真正运作良好烘焙到实体管理的“核心”的功能列表:基于

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

是你找到一个合适的框架?我也需要相同的,但没有发现。我制作了一个简单的JavaEE CRUD应用程序来管理现成的JPA树,并且仍然考虑动态实体类的生成。 – 2013-01-28 20:55:20

+0

@ArchiMage - 我无法找到框架。相反,我们选择了自己开发一些东西。另一方面,一些要求已经发生了很大的变化,所以它可能不再是一个真正的测试用例。 – 2013-01-29 18:00:27

回答

0

我没有亲自使用这个 - 但是从我已阅读neo4j可能适合您的所有需求

+0

我们目前正在研究neo4j以供将来使用,它确实是您最合适的数据库之一。即使我可能在交易点上有一些预留(你永远也找不到超级可用,超级一致和超级宽容的东西 - http://en.wikipedia.org/wiki/CAP_theorem) – 2012-08-14 15:31:09

+0

我已经研究过了Neo4j的。的确,它看起来和我所需要的相似(尽管缺乏相当多的功能,我需要在它之上进行构建)。但是,我还没有看到任何提及在相同数据库上工作的多个neo4j服务器(如在RAC中)。我怎样才能横向缩放呢?或者让它高度可用? – 2012-08-14 19:30:59

+0

对不起 - neo4j确实通过集群级复制支持HA,并通过单个服务器传输所有写入。但是,它不支持分片。 – 2012-08-14 19:42:54