とたに
2012 ©
CMIS Specification輪読 1回目
2012年11月16日
2012年11月28日水曜日
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日水曜日
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日水曜日
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日水曜日
2012.09.25 2012 ©
リファレンストピック:RFC5023 Atom Publishing Protocol③
1. Introduction
5
Category Document:atom:category要素を含む
Service Document:コレクションを見つけることをサポートするために定義されている。(Service Documentを見つける部分は本仕様では定義されていない)CollectionをWorkspaceにグルーピングした情報を返却
2012年11月28日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
2012年11月28日水曜日
Recommended