Sling vs CMIS 作为 Apache jackrabbit 的 REST 接口

Posted

技术标签:

【中文标题】Sling vs CMIS 作为 Apache jackrabbit 的 REST 接口【英文标题】:Sling vs CMIS as a REST interface for Apache jackrabbit 【发布时间】:2013-03-17 15:02:35 【问题描述】:

如果我得到它,Apache Sling 会为 Jackrabbit JCR 存储库充当 REST CRUD 接口。

由于已经存在 RESTful 协议(CMIS 在其 AtomPub 实现中) 使用 JCR 存储库,除了视图/模板层,是否存在 使用 Apache Sling 与 CMIS 有什么优势(即通过 Apache Chemistry)?

有什么可以使用CMIS不支持的JCR(Sling)来完成的吗?

【问题讨论】:

【参考方案1】:

这两种协议的一些特点可能会帮助您选择一个来使用。

CMIS

最初是作为跨不同(文档)内容存储库联合内容的一种方式,其核心业务是让不同的内容存储库通过 Web 界面 (REST / WS) 相互通信。虽然最新版本的协议通过基于 JSON 的浏览器绑定改进了对内容的浏览器操作,但 CMIS 经常表现为一个有点闲聊的协议,并不总是在内容交付方面大放异彩。

PROS:标准,由众多供应商支持,支持稍微丰富的数据模型(Renditions、Policies)

缺点:很健谈,如果使用 AtomPub 或 WS 绑定,需要进行大量 XML 解析,无法创建自定义服务 API

吊索

我不是这方面的专家,但据我所知,它是 JCR 之上的一个轻量级、可扩展的 HTTP 层。数据处理逻辑与您通过 HTTP 作为组件请求的内容相关联,使您能够在交付前处理并最终优化内容。

优点:在内容检索之上添加了一个数据处理层,在纯 HTTP 上工作,无需复杂的有效负载来描述每个操作

缺点:非标准,无法轻松交换内容存储库

【讨论】:

我同意 skuro 的观点,基本上,如果您知道您将在 Sling HTTP API 下拥有一个 JCR 存储库,将为您提供更强大、更直接的接口,并且选择很容易。 CMIS 有利于互操作性,但它不像 Sling 接口那样映射到 JCR。 能否请您详细说明映射的差异?也许在一个答案中,所以我可以投票=) 同时我发现了这个svn.apache.org/repos/asf/chemistry/opencmis/trunk/…

以上是关于Sling vs CMIS 作为 Apache jackrabbit 的 REST 接口的主要内容,如果未能解决你的问题,请参考以下文章

版本控制文件错误,在 java 中使用 Magnolia 与 apache 化学和标准 CMIS

从 apache sling 启动板 7 到 sling 11

Apache Sling 中的摘要身份验证是不是可行?

使用Sling Pipes比其他方式修改内容有什么好处?

将 sling:OsgiConfig 读入 @ObjectClassDefinition

如何在 AEM 作为云中创建后台作业?