所有CMIS操作都需要同步吗?

时间:2013-01-30 03:42:13

标签: specifications synchronous cmis

CMIS protocol specification甚至不包含“同步”或“异步”字样。

我猜这是隐含的,每个服务器端操作都是同步的? 有反例吗?

场景:我创建了一个文档,然后立即列出了该目录,该文件尚未出现 这种情况是非法的吗? (不是客户端问题,客户端在转到下一条指令之前等待HTTP响应)

2 个答案:

答案 0 :(得分:1)

通常,CMIS操作应该是同步的。我不知道任何反例。服务器上的异步操作几乎不可能创建应用程序。

假设您正在使用AtomPub,您可能需要检查 http://bitworking.org/projects/atom/rfc5023.html。创建资源会返回其URI。

所以我猜你所看到的是实现中的错误,或者客户端正在使用规范未涵盖的实现细节。露天存储库例如默认情况下是异步索引(solr)。因此,我认为应该可以使用代码来演示您通过搜索支持列表的行为。

答案 1 :(得分:1)

CMIS是同步的,对于跨越多个请求的事务没有任何语义。因此,AtomPub绑定中的每个成功的突变请求(POSTPUTDELETE都会对后续请求产生直接影响。

您描述的场景并非违法,在CMIS下根本无法实现。如果您需要异步操作,则需要将客户端与CMIS分离并引入一个中间层,例如:

  • 缓存CMIS突变的执行前状态
  • 返回缓存值,直到变异成功。