0

CMIS プロトコル仕様には、「同期」または「非同期」という言葉さえ含まれていません。

暗黙のうちに、すべてのサーバー側の操作は同期していると思いますか?
反例はありますか?

シナリオ: ドキュメントを作成し、すぐにディレクトリを一覧表示しましたが、ファイルがまだ表示されません。
このシナリオは違法ですか?
(クライアントの問題ではありません。クライアントは次の命令に進む前に HTTP 応答を待ちます)

4

2 に答える 2

1

CMIS は同期的であり、複数の要求にまたがるトランザクションのセマンティックはありません。したがって、成功した各ミューテーション リクエスト ( AtomPub バインディングのPOST、 ) はPUTDELETE後続のリクエストにすぐに影響します。

あなたが描いたシナリオは違法ではありません.CMISの下で達成することは単に不可能です. 非同期操作が必要な場合は、クライアントを CMIS から切り離し、次のような中間層を導入する必要があります。

  • CMIS ミューテーションの実行前の状態をキャッシュします
  • ミューテーションが成功するまで、キャッシュされた値を返します。
于 2013-01-30T09:00:15.217 に答える
1

一般に、CMIS 操作は同期的であると想定されています。私は反例を知りません。サーバー上で非同期操作を行うと、アプリケーションを作成することがほとんど不可能になります。

内部で AtomPub を使用していると仮定すると、 http://bitworking.org/projects/atom/rfc5023.htmlを確認することをお勧めします。リソースを作成すると、その URI が返されます。

したがって、あなたが見ているのは、実装のバグか、クライアントが仕様でカバーされていない実装の詳細を使用していると思います。たとえば、alfresco リポジトリは、デフォルトで非同期的にインデックスを作成します (solr)。したがって、検索によってリストを裏付ける動作を示すコードを提供することは可能であると思います。

于 2013-01-30T06:15:31.293 に答える