More Related Content
Similar to Cmis輪読 1回目 (20)
Cmis輪読 1回目
- 2. 1. Introduction
リファレンストピック:RFC4287 Atom Syndication Format
Atom: feeds(関連した情報のリスト)を表現するXML文書
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
2012.09.25 2 © 2012
2012年11月28日水曜日
- 3. 1. Introduction
リファレンストピック:RFC5023 Atom Publishing Protocol①
AtomPub: Webリソースの配信/編集を行うアプリケーションレベルのプロトコル
プロトコルは以下を操作する機能を提供
•Collections: リソースのセット
•Services: Collectionsの発見と概要
•Editing: リソースの作成、編集、削除
リソース: URI(IRI)で一意に識別されるネットワーク経由でアクセスできるデータオブジェク
ト
リレーション: atom:linkオブジェクトのref属性
Representation: HTTP/1.1で定義されたリクエストとレスポンスに含まれるエンティティ
Collection: リソースをメンバとして含むリソース。CollectionsはAtom Feedsとして表現
される。
2012.09.25 3 © 2012
2012年11月28日水曜日
- 4. 1. Introduction
リファレンストピック:RFC5023 Atom Publishing Protocol②
Member Resource:
コレクションに含まれるリソース
Member ResourceはEntity ResourceとMedia Resourceに分けられる
Entity Resource: Atom Entity Documentとして表現される(メタデータ等を保持)
Media Resource: 任意のメディアタイプでRepresentationを保有することができる
コレクションの中でMediaリソースはMedia Link Entityを使って表現される。
AtomPubにおける操作:
GET: リソースのrepresenationを取得
POST: 新規のリソース作成に使用。
クライアントがCollectionに対して非AtomEntry形式のRepresentationをPOSTした場
合には、2つのリソースが作成される。Media Entryと、登録されたリソースのメタデー
タに対するMedia Link Entryの2つ。
PUT: リソースの編集
DELETE: リソースの削除
2012.09.25 4 © 2012
2012年11月28日水曜日
- 5. 1. Introduction
リファレンストピック:RFC5023 Atom Publishing Protocol③
Category Document:
atom:category要素を含む
Service Document:
コレクションを見つけることをサポートするために定義されている。
(Service Documentを見つける部分は本仕様では定義されていない)
CollectionをWorkspaceにグルーピングした情報を返却
2012.09.25 5 © 2012
2012年11月28日水曜日
- 6. 1. Introduction
リファレンストピック:RFC5829 Link Relation Types for
Simple VersionNavigation between Web Resources
Webリソースから過去のバージョンを る際に利用するリンクリレーションの型を定義
Versioned Resource
バージョンコントロールされたリソース
Version History(Resource)
Versioned Resourceの全てのバージョンを含むリソース
リンクリレーション
• version-history
• latest-version
• working-copy
• working-copy-of
• predecessor-version
• successor-version
2012.09.25 6 © 2012
2012年11月28日水曜日
- 7. 1. Introduction
リファレンストピック:Web Linking
リンク
IRIで識別されるリソースの2つを接続するもの。タイプを持つ。
リンクのタイプ
リンクの意味を表現。e.g.) copyright, service
relパラメータの値として表現
予約済みのリンクタイプ
沢山ある
alternate, appendix, bookmark, contents, copyright, help, ...
up, self, ...
2012.09.25 7 © 2012
2012年11月28日水曜日
- 8. 2. Domain Model
2.1. Data Modelイントロ
CMISはリポジトリへのアクセスインタフェースをアプリケーションに提供する。
コアデータモデル
リポジトリにより管理される永続化されたデータ/エンティティ
および、これらのエンティティにアクセスするサービス
データモデルに含まれないもの
永続的ではないオブジェクト
管理用オブジェクト
拡張されたコンセプト
CMISのスコープ
1つのCMISサービスエンドポイントが複数のCMISリポジトリを公開することはありえる
CMISエンドポイントをどのように取得するかはCMIS仕様のスコープ外だが、CMISエン
ドポイントにどのように接続するかはCMISの範囲内。(Get Repositories)。
Get Repositories以外の全てのサービスは1つのリポジトリ範囲内を対象とする。
2012.09.25 8 © 2012
2012年11月28日水曜日
- 9. 2. Domain Model
2.1.1 リポジトリ①
リポジトリは リポジトリ情報の取得 サービスにより説明できる。
オプションの機能(capability)
getRepositoryInfoサービスを使うことで、リポジトリにどのようなオプション機能がサ
ポートされているかを調べることができる。
Navigation Capabilities:
• capabilityGetDescendants
• capablitiyGetFolderTree
• capabilityContentStreamUpdatability
• capabilityChanges: none, objectonly, properties, all
• capabilityRenditions
Filing Capabilities:
•capablityMultifiling: 2つ以上のフォルダにコンテンツを保管できる(?)
•capabilityUnfiling: フォルダにコンテンツを格納させない
•capablilityVersionSpecificFiling: バージョンを指定してコンテンツを登録可能
2012.09.25 9 © 2012
2012年11月28日水曜日
- 10. 2. Domain Model
2.1.1 リポジトリ②
オプションの機能(capability)
Versioning Capabilities:
• capabilityPWCUpdatable: Privateワーキングコピーの更新
• capabilityPWCSearchable: PWCの検索可否
• capabilityAllVersionsSearchable: 全てのバージョンを検索に含む
Filing Capabilities:
•capablityMultifiling: 2つ以上のフォルダにコンテンツを保管できる
•capabilityUnfiling: フォルダにコンテンツを格納させない
•capablilityVersionSpecificFiling: バージョンを指定してコンテンツを登録可能
2012.09.25 10 © 2012
2012年11月28日水曜日
- 11. 2. Domain Model
2.1.1 リポジトリ③
オプションの機能(capability)
Query Capablilities:
• capabilityQuery: none, metadataonly, fulltextonly, bothseparate,
bothcombined
• capabilityJoin: none, inneronly, innerandouter
ACL Capability:
•capablityACL: none, discover, manage
その他に返却される情報
Get Repositories Informationでは...
ベンダ名、プロダクト名、プロダクトバージョン、サポートするCMISバージョン、
ルートフォルダID、その他実装における任意の情報を返却可能
2012.09.25 11 © 2012
2012年11月28日水曜日
- 12. 2. Domain Model
2.1.2. オブジェクト①
オブジェクト:CMISの全てのエンティティ
•documentオブジェクト
•folderオブジェクト
•relationshipオブジェクト
•2つのオブジェクトの間の有向関連
•policyオブジェクト
•管理ポリシを表現
• controllablePolicy なオブジェクト(複数)に対して適用可能
オブジェクトのサブタイプを定義するのは自由。ただし、タイプ管理のサービスはスコープ外
CMISオブジェクトは不変のObject ID(ID)で識別。
CMISオブジェクトはPropertiesを持つ(propertyは順序を持たないが、リポジトリは一貫
した順序で返却する必要がある)
2012.09.25 12 © 2012
2012年11月28日水曜日
- 13. 2. Domain Model
2.1.2. オブジェクト②
ドキュメント:
Content-Streamを持てる
Content-Streamに関連する1つ以上のRenditionを持てる
ドキュメントおよびフォルダ:
ACLを持てる
属性
プロパティは0以上の型付きの値を保持する。
プロパティはsingle-valuedもしくはmulti-valued, multi-valuedは順序リスト
プロパティに値が与えられていない場合には、 value not set 状態となる。プロパティに対
するnull値は定義されていない。
multi-valueプロパティは順序リストか、完全なvalue not setのいずれかとなる。
プロパティの型
string, boolean, integer, datetime, uri, id, html
queryName属性: 検索時とフィルタ操作の際に指定。
空白、コンマ、ダブルコーテーション、シングルコーテーション、バックスラッシュ、ピ
リオド、括弧を含まない
2012.09.25 13 © 2012
2012年11月28日水曜日
- 14. 2. Domain Model
2.1.2. オブジェクト③
ID属性
システムが生成する読み取り専用の属性。Object IDやObject Type IDなどで使われる。
CMISのIdentityはタイプを越えてID属性を共有するが、IDの名前空間までも共有する必要は
ない。
HTML属性
HTMLドキュメントやHTML断片を保持
2012.09.25 14 © 2012
2012年11月28日水曜日
- 15. 2. Domain Model
2.1.3. Object-Type①
Object-Type: 固定長で非階層の属性セット(schema)を定義。これらの属性は、このタイプの
全てのオブジェクトで保持される。
全てのCMISオブジェクトは強く型付けされている。schemaに定義されていない属性がアプリ
ケーションで与えられた場合には、例外がスローされる。
Object-Typeはリポジトリ上で一意に識別される。(Object-Type Identifier)
リポジトリはgetTypeChildrenなどのサービスにより、一意のObject-Typeのセットを公開す
る。
リポジトリはCMIS Base Object-Types以外の追加のタイプを定義することができる。
2012.09.25 15 © 2012
2012年11月28日水曜日
- 16. 2. Domain Model
2.1.3. Object-Type②
Object-Type階層と継承:CMISでサポート
CMISリポジトリ
cmis:document, cmis:folder Object-Typeを持つ
cmis:relationship, cmis;policy Object-Typeを持っていてもよい
これ以外の基本型はない。
すべての追加型はこれらの4つのどれかのサブタイプもしくは子孫タイプとして定義する必要
がある。
基本型には親タイプはない。
基本型以外の型は、1つの親タイプを持つ。親タイプはオブジェクトタイプの定義に含まれ
る。
Object-Type定義はObject-Type属性のセットを含む
基本型の属性は子孫タイプで必ず継承する必要がある
サブタイプで属性を使用しない場合には、サブタイプの全てのオブジェクトでnot setとなる。
あるオブジェクトタイプを指定した検索は、includedInSuperTypeQueryがtrueの場合には
子孫タイプ自動的に展開する。
2012.09.25 16 © 2012
2012年11月28日水曜日
- 17. 2. Domain Model
2.1.3. Object-Type③
トップのオブジェクトタイプ
Document Folder Relationship Policy
属性A
Contract 属性A
必ず基本型の属性は継承する必要がある
属性B
BasicContract 属性A
属性B
属性C
2012.09.25 17 © 2012
2012年11月28日水曜日
- 18. 2. Domain Model
2.1.3. Object-Type④
Object-Typeの属性(全Object-Type共通)
id, localName, localNamespace, queryName, displayName,
baseId: 基本型を指定
parentId, description, creatable, filable, queryable,
controllablePolicy, controllableACL
fulltextIndexed, includedInSupertypeQuery
Object-Type Propertyの定義
id, localName, localNamespace, queryName, displayName, decription,
propertyType, cardinality, updatability, inherited, required, queryable, orderable,
choices, openChoice, defaultValue
2012.09.25 18 © 2012
2012年11月28日水曜日