19
とたに 2012 © CMIS Specification 輪読 1回目 2012年11月16日 20121128日水曜日

Cmis輪読 1回目

Embed Size (px)

Citation preview

Page 1: Cmis輪読 1回目

とたに

2012 ©

CMIS Specification輪読 1回目

2012年11月16日

2012年11月28日水曜日

Page 2: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:RFC4287 Atom Syndication Format

1. Introduction

2

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年11月28日水曜日

Page 3: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:RFC5023 Atom Publishing Protocol①

1. Introduction

3

AtomPub: Webリソースの配信/編集を行うアプリケーションレベルのプロトコル

プロトコルは以下を操作する機能を提供•Collections: リソースのセット•Services: Collectionsの発見と概要•Editing: リソースの作成、編集、削除

リソース: URI(IRI)で一意に識別されるネットワーク経由でアクセスできるデータオブジェクトリレーション: atom:linkオブジェクトのref属性Representation: HTTP/1.1で定義されたリクエストとレスポンスに含まれるエンティティCollection: リソースをメンバとして含むリソース。CollectionsはAtom Feedsとして表現される。

2012年11月28日水曜日

Page 4: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:RFC5023 Atom Publishing Protocol②

1. Introduction

4

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年11月28日水曜日

Page 5: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:RFC5023 Atom Publishing Protocol③

1. Introduction

5

Category Document:atom:category要素を含む

Service Document:コレクションを見つけることをサポートするために定義されている。(Service Documentを見つける部分は本仕様では定義されていない)CollectionをWorkspaceにグルーピングした情報を返却

2012年11月28日水曜日

Page 6: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:RFC5829 Link Relation Types for Simple VersionNavigation between Web Resources

1. Introduction

6

Webリソースから過去のバージョンを辿る際に利用するリンクリレーションの型を定義

Versioned Resourceバージョンコントロールされたリソース

Version History(Resource)Versioned Resourceの全てのバージョンを含むリソース

リンクリレーション• version-history• latest-version• working-copy• working-copy-of• predecessor-version• successor-version

2012年11月28日水曜日

Page 7: Cmis輪読 1回目

2012.09.25 2012 ©

リファレンストピック:Web Linking

1. Introduction

7

リンクIRIで識別されるリソースの2つを接続するもの。タイプを持つ。

リンクのタイプリンクの意味を表現。e.g.) copyright, servicerelパラメータの値として表現

予約済みのリンクタイプ沢山あるalternate, appendix, bookmark, contents, copyright, help, ...up, self, ...

2012年11月28日水曜日

Page 8: Cmis輪読 1回目

2012.09.25 2012 ©

2.1. Data Modelイントロ

2. Domain Model

8

CMISはリポジトリへのアクセスインタフェースをアプリケーションに提供する。

コアデータモデルリポジトリにより管理される永続化されたデータ/エンティティおよび、これらのエンティティにアクセスするサービス

データモデルに含まれないもの永続的ではないオブジェクト管理用オブジェクト拡張されたコンセプト

CMISのスコープ1つのCMISサービスエンドポイントが複数のCMISリポジトリを公開することはありえるCMISエンドポイントをどのように取得するかはCMIS仕様のスコープ外だが、CMISエンドポイントにどのように接続するかはCMISの範囲内。(Get Repositories)。Get Repositories以外の全てのサービスは1つのリポジトリ範囲内を対象とする。

2012年11月28日水曜日

Page 9: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.1 リポジトリ①

2. Domain Model

9

リポジトリは”リポジトリ情報の取得”サービスにより説明できる。

オプションの機能(capability) getRepositoryInfoサービスを使うことで、リポジトリにどのようなオプション機能がサポートされているかを調べることができる。

 Navigation Capabilities:• capabilityGetDescendants• capablitiyGetFolderTree• capabilityContentStreamUpdatability• capabilityChanges: none, objectonly, properties, all• capabilityRenditions

Filing Capabilities:•capablityMultifiling: 2つ以上のフォルダにコンテンツを保管できる(?)•capabilityUnfiling: フォルダにコンテンツを格納させない•capablilityVersionSpecificFiling: バージョンを指定してコンテンツを登録可能

2012年11月28日水曜日

Page 10: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.1 リポジトリ②

2. Domain Model

10

オプションの機能(capability)

 Versioning Capabilities:• capabilityPWCUpdatable: Privateワーキングコピーの更新• capabilityPWCSearchable: PWCの検索可否• capabilityAllVersionsSearchable: 全てのバージョンを検索に含む

Filing Capabilities:•capablityMultifiling: 2つ以上のフォルダにコンテンツを保管できる•capabilityUnfiling: フォルダにコンテンツを格納させない•capablilityVersionSpecificFiling: バージョンを指定してコンテンツを登録可能

2012年11月28日水曜日

Page 11: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.1 リポジトリ③

2. Domain Model

11

オプションの機能(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年11月28日水曜日

Page 12: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.2. オブジェクト①

2. Domain Model

12

オブジェクト:CMISの全てのエンティティ•documentオブジェクト•folderオブジェクト•relationshipオブジェクト•2つのオブジェクトの間の有向関連

•policyオブジェクト•管理ポリシを表現•“controllablePolicy”なオブジェクト(複数)に対して適用可能

オブジェクトのサブタイプを定義するのは自由。ただし、タイプ管理のサービスはスコープ外CMISオブジェクトは不変のObject ID(ID)で識別。CMISオブジェクトはPropertiesを持つ(propertyは順序を持たないが、リポジトリは一貫した順序で返却する必要がある)

2012年11月28日水曜日

Page 13: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.2. オブジェクト②

2. Domain Model

13

ドキュメント: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, htmlqueryName属性: 検索時とフィルタ操作の際に指定。

空白、コンマ、ダブルコーテーション、シングルコーテーション、バックスラッシュ、ピリオド、括弧を含まない

2012年11月28日水曜日

Page 14: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.2. オブジェクト③

2. Domain Model

14

ID属性システムが生成する読み取り専用の属性。Object IDやObject Type IDなどで使われる。CMISのIdentityはタイプを越えてID属性を共有するが、IDの名前空間までも共有する必要はない。

HTML属性HTMLドキュメントやHTML断片を保持

2012年11月28日水曜日

Page 15: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.3. Object-Type①

2. Domain Model

15

Object-Type: 固定長で非階層の属性セット(schema)を定義。これらの属性は、このタイプの全てのオブジェクトで保持される。

全てのCMISオブジェクトは強く型付けされている。schemaに定義されていない属性がアプリケーションで与えられた場合には、例外がスローされる。

Object-Typeはリポジトリ上で一意に識別される。(Object-Type Identifier)

リポジトリはgetTypeChildrenなどのサービスにより、一意のObject-Typeのセットを公開する。

リポジトリはCMIS Base Object-Types以外の追加のタイプを定義することができる。

2012年11月28日水曜日

Page 16: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.3. Object-Type②

2. Domain Model

16

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年11月28日水曜日

Page 17: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.3. Object-Type③

2. Domain Model

17

トップのオブジェクトタイプ

Document Folder Relationship Policy

Contract

BasicContract

属性A

属性A属性B

属性A属性B属性C

必ず基本型の属性は継承する必要がある

2012年11月28日水曜日

Page 18: Cmis輪読 1回目

2012.09.25 2012 ©

2.1.3. Object-Type④

2. Domain Model

18

Object-Typeの属性(全Object-Type共通)

id, localName, localNamespace, queryName, displayName, baseId: 基本型を指定parentId, description, creatable, filable, queryable, controllablePolicy, controllableACLfulltextIndexed, includedInSupertypeQuery

Object-Type Propertyの定義id, localName, localNamespace, queryName, displayName, decription,propertyType, cardinality, updatability, inherited, required, queryable, orderable, choices, openChoice, defaultValue

2012年11月28日水曜日

Page 19: Cmis輪読 1回目

2012年11月28日水曜日