ModeShape提供了JackRabbit没有的什么?

2022-09-01 13:06:45

我刚刚熟悉了Apache JackRabbit。我做了一个用于文档管理的小型多用户存储库。

如果有人同时使用它们,你能回答这些问题吗?

  1. ModeShape是否以某种方式与JBoss相关联?我对JBoss AS或任何其他JBoss工具没有太多经验。我看到对tomcat的支持,但很多JBossy的东西

  2. 文档说未来的版本应该有UI集成,这是遥远的未来吗?会是什么样的UI集成?有没有使用ModeShape的东西,因为它是在Hippo CMS与JackRabbit的情况下?很遗憾,Gatein没有使用它。

  3. JackRabbit在全文搜索,索引和文本内容的整体处理方面与ModeShape相比如何?

  4. CMIS支持怎么样?我看到一个未解决的问题 MODE-650。Jackrabbit受OpenCMIS(Apache chmistry)支持,即使在不久的将来也适用于次要类型。

  5. 支持/使用库怎么样,以便在使用节点时为开发人员提供便利

我对任何其他比较评论感兴趣,谢谢


答案 1

我可以回答你的一些问题。完全披露:我是ModeShape的创始人和项目负责人。

简而言之,ModeShape是一个轻量级,可嵌入,可扩展的开源JCR存储库实现,它联合和统一来自多个系统的内容,包括文件系统,数据库,数据网格,其他存储库等。您可以使用JCR API来访问您已经拥有的信息,或者像传统的JCR系统一样使用它。

以下是 ModeShape 的一些高级功能:

  • 支持JCR 2.0所需的所有功能:存储库获取;身份验证;阅读/导航;查询;出口;节点类型发现;权限和功能检查
  • 支持大多数JCR 2.0可选功能:写入;进口;观察;工作空间管理;版本控制;锁定;节点类型管理;同名兄弟姐妹;可排序子节点;可共享节点;和 ,以及具有自动创建属性的 mixin。mix:etagmix:createdmix:lastModified
  • 支持 JCR 1.0 和 JCR 2.0 语言(例如 XPath、JCR-SQL、JCR-SQL2 和 JCR-QOM)以及基于 JCR-SQL2 全文搜索表达式语法的全文搜索语言。此外,ModeShape支持一些非常有用的JCR-SQL2扩展:
    • 条件中的子查询
    • 设置操作(例如,“”,“”,“”,“”,每个操作都有可选的“”子句)UNIONINTERSECTEXCEPTALL
    • 限制和偏移
    • 重复删除(例如,”SELECT DISTINCT")
    • 其他深度、参考和路径标准
    • 设置和范围标准(例如,“”、“”和”INNOT INBETWEEN")
    • 算术标准(例如, ”SCORE(t1) + SCORE(t2)")
    • 完全外连接和交叉连接
    • 以及更多
  • 从多个存储选项中进行选择,包括 RDBMS(通过休眠)、数据网格(例如 Infinispan)、文件系统,或根据需要编写自己的存储连接器。
  • 使用 JCR API 访问现有服务、文件系统和存储库中的信息。ModeShape 连接器将外部信息投影到 JCR 存储库中,从而可能将来自多个系统的信息联合到单个工作区中。编写自定义连接器以访问其他系统。
  • 上传文件并让 ModeShape 自动解析并派生代表这些文件内容的结构化信息。此派生信息存储在存储库中,可以像查询和访问任何其他内容一样对其进行查询和访问。ModeShape支持许多开箱即用的文件类型,包括:CND,XML,XSD,WSDL,DDL,CSV,ZIP / JAR / EAR / WAR,Java源代码,Java类文件,Microsoft Office,图像元数据以及Teiid模型和VB。
  • 自动且可扩展的 MIME 类型检测,使用文件扩展名进行开箱即用的检测,使用 Aperture 进行基于内容的检测。
  • 可扩展的文本提取框架,使用 Tika 对 Microsoft Office、PDF、HTML、纯文本和 XML 文件提供开箱即用的支持。
  • 使用 JGroups 进行简单聚类。
  • 将 ModeShape 嵌入到您自己的应用程序中。
  • RESTful API(需要部署到应用程序服务器中)。

这些只是一些亮点。有关这些功能和其他 ModeShape 功能的详细信息,请参阅 ModeShape 文档

现在,以下是您编号问题的一些具体答案:

  1. ModeShape 托管在 JBoss.org,并与其他 JBoss 技术一起使用/集成,因为我们认为重用同类最佳的库会更好。但 ModeShape 绝对不会绑定到 JBoss Application Server。ModeShape 可以在其他应用程序服务器上使用,其方式与其他 JCR 实现大致相同(通常嵌入到 Web 应用程序中)。另外,ModeShape可以嵌入到任何应用程序中。毕竟,它只是一个普通的Java库。它甚至使用 SLF4J,以便可以将 ModeShape 日志消息发送到应用程序的日志记录框架。

    现在,话虽如此,我们确实可以使用一个简单的工具包将ModeShape部署到JBoss AS安装中:只需解压缩,自定义一下配置(根据您的需求),然后启动您的应用程序服务器。ModeShape 将在应用服务器中作为服务运行,允许已部署的应用轻松查找、使用和共享存储库。ModeShape 甚至可以使用 JBoss AS 控制台进行监控。

  2. 我相信您指的是我们开发存储库可视化工具的计划(远不如成熟的CMS系统)。这方面的工作最近才刚刚开始,我们欢迎任何见解,对功能的要求以及与我们合作的兴趣。我知道Magnolia可以在ModeShape上运行,但不确定其他CMS应用程序是否能够做到这一点。JBoss Enterprise Data Services (EDS) 平台还包括 ModeShape,并将其用作元数据存储库。JBoss 业务规则管理系统也可以使用 ModeShape 作为其 JCR 存储库。

  3. ModeShape和Jackrabbit都在内部使用Lucene进行全文搜索和查询。在这方面,它们非常相似。当然,ModeShape的搜索和查询解析和执行的实现与Jackrabbits不同,实际上是由实现MetaMatrix关系导向集成和联邦引擎(现在是JBoss EDS的一部分)的一些人编写的。因此,ModeShape 为其每种查询语言都有一个单独的分析器,但在此之后,所有查询的所有验证、规划、规划和执行都以相同的方式完成。我们对查询引擎的功能和性能感到非常自豪!

  4. ModeShape 没有连接到其他 CMIS 系统的连接器,但正如您所指出的,它目前正在工作 (MODE-650)。我们还想与Apache Chemistry团队合作,以确保JCR适配器与ModeShape一起使用。我们只是没有时间这样做。

  5. ModeShape 确实有一个 JcrTools 实用工具类,可能会证明是有用的。但是任何写在JCR API之上的实用程序类都应该工作正常。

希望有所帮助!


答案 2

模式形状的文档似乎更好。与其他apache项目相比,Jackrabbit的人提供的文档有限。我想,如果你需要花哨的(企业)功能,他们希望你付钱。另请注意,您几乎被迫使用sql数据库作为后端。因为几乎所有其他后端都“不打算用于生产用途”。与刚刚出来并说出来的modeshape相比:

这实际上是ModeShape的主要目的:提供JCR实现,提供对存储在许多不同类型系统中的内容的访问,包括多个系统的联合。ModeShape 存储库不是另一个信息孤岛,而是环境中已有信息的 JCR 视图:文件系统、数据库、其他存储库、服务、应用程序等。ModeShape 可以通过标准的 Java API 帮助您了解已有的系统和信息

我宁愿这种清晰度,而不是让人们搜索他们的文档和谷歌来寻找不存在的信息。


推荐