SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
CMIS Specification
                    輪読 1回目



                      2012年11月16日

                         とたに




                                     © 2012
2012年11月28日水曜日
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日水曜日
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日水曜日
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日水曜日
1. Introduction
    リファレンストピック:RFC5023 Atom Publishing Protocol③
    Category Document:
      atom:category要素を含む


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




2012.09.25                   5                  © 2012
2012年11月28日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
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日水曜日
2012年11月28日水曜日

Mais conteúdo relacionado

Destaque

The Politics for Public Schools
The Politics for Public SchoolsThe Politics for Public Schools
The Politics for Public Schoolsmlcvista
 
KPA Top Ranked Dealers
KPA Top Ranked DealersKPA Top Ranked Dealers
KPA Top Ranked DealersJD Rucker
 
Tietotekniikan työ power point ;)
Tietotekniikan työ power point ;)Tietotekniikan työ power point ;)
Tietotekniikan työ power point ;)Tanssija123
 
Working with Volunteers
Working with VolunteersWorking with Volunteers
Working with Volunteersmlcvista
 
A vida no planeta terra
A vida no planeta terraA vida no planeta terra
A vida no planeta terramarganebrum
 
Determinación de coberturas por teledetección
Determinación de coberturas por teledetecciónDeterminación de coberturas por teledetección
Determinación de coberturas por teledetecciónEduardo Rollero
 
A vida no planeta terra
A vida no planeta terraA vida no planeta terra
A vida no planeta terramarganebrum
 
Analisis horizontal y vertical ramirez
Analisis horizontal y vertical ramirezAnalisis horizontal y vertical ramirez
Analisis horizontal y vertical ramirezSanty1987
 
Determinación de coberturas por teledetección
Determinación de coberturas por teledetecciónDeterminación de coberturas por teledetección
Determinación de coberturas por teledetecciónEduardo Rollero
 

Destaque (12)

The Politics for Public Schools
The Politics for Public SchoolsThe Politics for Public Schools
The Politics for Public Schools
 
KPA Top Ranked Dealers
KPA Top Ranked DealersKPA Top Ranked Dealers
KPA Top Ranked Dealers
 
Tietotekniikan työ power point ;)
Tietotekniikan työ power point ;)Tietotekniikan työ power point ;)
Tietotekniikan työ power point ;)
 
Working with Volunteers
Working with VolunteersWorking with Volunteers
Working with Volunteers
 
Los actos
Los actosLos actos
Los actos
 
A vida no planeta terra
A vida no planeta terraA vida no planeta terra
A vida no planeta terra
 
Kefalaio01
Kefalaio01Kefalaio01
Kefalaio01
 
Determinación de coberturas por teledetección
Determinación de coberturas por teledetecciónDeterminación de coberturas por teledetección
Determinación de coberturas por teledetección
 
Villa turkbuku
Villa turkbukuVilla turkbuku
Villa turkbuku
 
A vida no planeta terra
A vida no planeta terraA vida no planeta terra
A vida no planeta terra
 
Analisis horizontal y vertical ramirez
Analisis horizontal y vertical ramirezAnalisis horizontal y vertical ramirez
Analisis horizontal y vertical ramirez
 
Determinación de coberturas por teledetección
Determinación de coberturas por teledetecciónDeterminación de coberturas por teledetección
Determinación de coberturas por teledetección
 

Semelhante a Cmis輪読 1回目

CMIS輪読会#4 Secondaryタイプを通じて学ぶ Object Type
CMIS輪読会#4  Secondaryタイプを通じて学ぶ Object TypeCMIS輪読会#4  Secondaryタイプを通じて学ぶ Object Type
CMIS輪読会#4 Secondaryタイプを通じて学ぶ Object Typelinzhixing
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA CLOUDIAN KK
 
Hybrid Cloud with Cisco Cloud Center and Object Storage
Hybrid Cloud with Cisco Cloud Center and Object StorageHybrid Cloud with Cisco Cloud Center and Object Storage
Hybrid Cloud with Cisco Cloud Center and Object StorageHisayoshi Kato
 
Cloudian presentation for Cassandra Conference 2012 in Tokyo
Cloudian presentation for Cassandra Conference 2012 in TokyoCloudian presentation for Cassandra Conference 2012 in Tokyo
Cloudian presentation for Cassandra Conference 2012 in TokyoCLOUDIAN KK
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめKohei Kadowaki
 
PolicyとItem (CMIS輪読会#3)
PolicyとItem (CMIS輪読会#3)PolicyとItem (CMIS輪読会#3)
PolicyとItem (CMIS輪読会#3)Ashitaba YOSHIOKA
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料Siena. N
 
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいIBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいK Kimura
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】Tomoharu ASAMI
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlowTomoyuki Obi
 
メタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeメタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeMitsuharu Nagamori
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートオラクルエンジニア通信
 
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~Michio Koyama
 
Cloudian at cloud week 2013
Cloudian at cloud week 2013Cloudian at cloud week 2013
Cloudian at cloud week 2013CLOUDIAN KK
 
いいパブッ!! - よくわかるEPUB 3
いいパブッ!! - よくわかるEPUB 3いいパブッ!! - よくわかるEPUB 3
いいパブッ!! - よくわかるEPUB 3Hiroshi Takase
 
CLI と BCL
CLI と BCLCLI と BCL
CLI と BCLshozon
 

Semelhante a Cmis輪読 1回目 (20)

CMIS輪読会#4 Secondaryタイプを通じて学ぶ Object Type
CMIS輪読会#4  Secondaryタイプを通じて学ぶ Object TypeCMIS輪読会#4  Secondaryタイプを通じて学ぶ Object Type
CMIS輪読会#4 Secondaryタイプを通じて学ぶ Object Type
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA
 
Hybrid Cloud with Cisco Cloud Center and Object Storage
Hybrid Cloud with Cisco Cloud Center and Object StorageHybrid Cloud with Cisco Cloud Center and Object Storage
Hybrid Cloud with Cisco Cloud Center and Object Storage
 
Cloudian presentation for Cassandra Conference 2012 in Tokyo
Cloudian presentation for Cassandra Conference 2012 in TokyoCloudian presentation for Cassandra Conference 2012 in Tokyo
Cloudian presentation for Cassandra Conference 2012 in Tokyo
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
 
PolicyとItem (CMIS輪読会#3)
PolicyとItem (CMIS輪読会#3)PolicyとItem (CMIS輪読会#3)
PolicyとItem (CMIS輪読会#3)
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料
 
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいIBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
 
メタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeメタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridge
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
 
Dexiejs
DexiejsDexiejs
Dexiejs
 
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~
.NETからActive Directoryデータにアクセス ~共有フォルダ情報の取得と表示~
 
Cloudian at cloud week 2013
Cloudian at cloud week 2013Cloudian at cloud week 2013
Cloudian at cloud week 2013
 
Vsug ef
Vsug efVsug ef
Vsug ef
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
いいパブッ!! - よくわかるEPUB 3
いいパブッ!! - よくわかるEPUB 3いいパブッ!! - よくわかるEPUB 3
いいパブッ!! - よくわかるEPUB 3
 
CLI と BCL
CLI と BCLCLI と BCL
CLI と BCL
 

Cmis輪読 1回目

  • 1. CMIS Specification 輪読 1回目 2012年11月16日 とたに © 2012 2012年11月28日水曜日
  • 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日水曜日