0

CMIS 协议规范甚至不包含“同步”或“异步”这两个词。

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

场景:我创建了一个文档,然后我立即列出了目录,但文件还没有出现。
这种情况是否违法?
(不是客户端问题,客户端等待HTTP响应再进行下一条指令)

4

2 回答 2

1

一般来说,CMIS 操作应该是同步的。我不知道有什么反例。服务器上的异步操作几乎不可能创建应用程序。

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

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

于 2013-01-30T06:15:31.293 回答
1

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

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

  • 缓存 CMIS 突变的执行前状态
  • 返回缓存的值,直到突变成功。
于 2013-01-30T09:00:15.217 回答