たなかこういちの資料室

システム開発に携わる筆者があれこれ試したことや学んだことについてのまとめ

CMIS 1.0 Specificationの概要

仕様書本家サイト
 
 
概要(※Abstractの訳)
 
Content Management Interoperability Services (CMIS)標準は、複数のContent Management Repository/System (CMS)と共に動作するアプリケーションが利用できる、ドメインモデル、Webサービス、Restfull AtomPubバインディングを定義します。
 
CMISインターフェースは、既存のCMSやそれらのプログラミング言語向けインターフェースの上位層に位置付けられるよう設計されています。CMISインターフェースは、既存CMS特有の機能を如何に実装するか説明したり、そのCMSの全ての機能(capability)をCMISインターフェースを通して公開しようと意図するものではありません。むしろ、CMSの一般的(generic)/普遍的(universal)な機能(capability)セットとそれら機能を活用するサービスのセットを定義することを目指しています。
 
■ ドメインモデル概要
  • Repository
・CMISのサービスを提供する“インスタンス
・Capabilityが定義されていて、アプリはどういったCapabilityが備わっているか問い合わせることができる
  • Object
・Repositoryに格納されるモノ
・下記4種のベースタイプ(Object-Type)がある:
- Document Object
- Folder Object
- Relationship Object
- Policy Object
・CMISとして規定するアクセス制御が為される
・Repositoryに対してSQL互換のQuery言語を投げてObjectを抽出できる
※そのため(?)、CMISのObjectは強く型付けされる
・Repositoryは、Objectに対する操作のChange Logを取り、管理する
  • Document Object
・いわゆるドキュメント、の理解でOK
・バージョン管理される
・何れのFolderにも属さなかったり、複数のFolderに属したりもできる
  • Folder Object
・いわゆるフォルダー、の理解でOK
・階層化可能(※"/"区切りのパス表現あり)
・バージョン管理されない
  • Relationship Object
・SourceとTargetの間にRelationshipを張る
・タイプ(※つまり、どのような意味のRelationshipか、を表す)が既定される
  • Policy Object
・CMISのシステムが、各Objectをどのように取り扱うかの表明
※例えば、「削除後nヶ月はリカバリー可能」などを表明する
※アクセス制御のことではない
・より具体的な仕様はCMISとしては規定せず、各実装が任意に扱え、というスタンス
 
■ CMISが定義している主だったサービス(API
 
getRepositories
getRepositoryInfo
getChildren
createDocument
createFolder
getObject
getObjectByPath
deleteObject
query
checkIn
checkOut
...
 
※これらは特定言語独立・中立に定義されていて、それに加えて「Restfull AtomPubバインディング」と「SOAPバインディング」が定義されている
 
◆以上