ヘッダーをスキップ
Oracle® Fusion Middleware Content Management REST Service開発者ガイド
11g リリース1(11.1.1)
B61393-01
 

 

Oracle® Fusion Middleware

Content Management REST Service開発者ガイド

11g リリース1(11.1.1)

B61393-01(原本部品番号:E15813-04)

2010年2月

概要

OASIS CMIS(Content Management Interoperability Service)技術委員会は、Enterprise Content Management(ECM)システムの相互運用性の向上を可能にするWebサービス・インタフェース仕様の標準化を目指して活動しています。詳細は、OasisのCMISサイト(http://www.oasis-open.org/committees/cmis/)を参照してください。

Content Management REST Serviceは、RESTful AtomPubサーバー・バインディングを使用してCM VCR(Content Management Virtual Content Repository)へのアクセスを可能にするサーバーを提供します。

このガイドはOASIS CMIS仕様を補完するためのものであり、Content Management REST Serviceの具体的な実装について詳しく説明します。まず最初に、すべてのユーザーはOASIS CMIS仕様を確認する必要があります。このガイドは、Content Management Interoperability Service(CMIS)バージョン1.0のパブリック・レビュー・ドラフト(委員会ドラフト04)に基づいています。このドラフトは、http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.htmlで参照できます。この仕様には、ドメイン・モデルおよび2つのバインディングが含まれています。前述のように、現在Content Management REST Serviceにより実装されているのは、RESTful AtomPubバインディングのみです。仕様にはXMLスキーマ(両方のバインディングに共通のものと共通でないものがある)と例が含まれています。また、レスポンスのデフォルトのフォーマッティングはAtomPubなので、ユーザーはAtomPubについても理解している必要があります。


注意:

CMISは広範な種類の各コンテンツ・システムに対する最小公分母を提供するものであり、Content Management REST Serviceと直接連携してはいません。CM VCRからのあらゆる要素がCMISにより公開されるわけではなく、またCMISのあらゆる要素がCM VCRでサポートされるわけでもありません。

このガイドでは、次の内容について説明します。

CMIS第I部 - ドメイン・モデル

CMIS仕様の「ドメイン・モデル」では、1つ以上のコンテンツ管理リポジトリ/システムとともに動作するアプリケーションで使用可能なドメイン・モデルを定義しています。

この項は、CMISの「ドメイン・モデル」の説明での項に従って編成されています。

データ・モデル

Content Management REST Serviceのサービス・ドキュメントは、AtomPubワークスペースで構成されています。ワークスペースはそれぞれ、コンテンツ接続にマッピングされます(Content Management REST Serviceでサポートされているのは、UCMリポジトリのみです)。サービス・ドキュメントの詳細は、次項(「CMIS第II部: RESTful AtomPubバインディング」を参照してください。

リポジトリ

このリリースでは、2.1.1項にリストされているオプション機能の一部は実装されていません。今後のリリースで、バージョニング、ACL、ポリシー、リレーションシップ、変更ログ、フォルダの下位要素/ツリー、レンディションおよび全文検索の実装が検討される予定です。

Content Management REST Service実装には、具体的に次のオプション機能が含まれています。

capabilityGetDescendants = false 
capabilityContentStreamUpdatability = anytime 
capabilityChanges = none
capabilityRenditions = none 
capabilityMultifiling = false 
capabilityUnfiling = false 
capabilityVersionSpecificFiling = false 
capabilityPWCUpdateable = false 
capabilityPWCSearchable = false 
capabilityAllVersionsSearchable = false 
capabilityJoin = none
capabilityACL = none
capabilityQuery = none or metadataonly

注意:

全文検索は現在は実装されていません。リポジトリ構成内で検索が有効になっている場合、capabilityQuerymetadataonlyとなります。有効になっていない場合は、noneとなります。

オブジェクト

Content Management REST Serviceでは、ドキュメント・オブジェクトおよびフォルダ・オブジェクトがサポートされています。CMISでは、ノードのcmis:baseTypeIdcmis:folderまたはcmis:documentとなります。また、タイプのcmis:baseIdcmis:folderまたはcmis:documentとなります。CMISオブジェクトのID(cmis:objectid)は、CM VCRのノードIDに直接関連しています。

VCRのプロパティ・タイプは、CMISのプロパティ・タイプに次のようにマッピングされます。

  • Property.STRING: cmis:propertyString

  • BOOLEAN: cmis:propertyBoolean

  • DOUBLE: cmis:propertyDecimal

  • LONG: cmis:propertyInteger

  • CALENDAR: cmis:propertyDateTime

  • NESTED: cmis:propertyId

  • LINK: cmis:propertyId

  • BINARY: (直接cmisタイプとして表現されるのではなく、1つのバイナリ・プロパティが3つのプロパティ(cmis:contentStreamLength、cmis:contentStreamMimeTypeおよびcmis:contentStreamId)として公開されます。または、getContentStream/setContentStreamとともに使用されます。)

Object-Type

CMISのObject-TypeはCM VCRのObjectClassと一致しています。Typeとも呼ばれます。

ドキュメント・オブジェクト

ドキュメント・オブジェクトは、リポジトリによって管理される基本的な情報エンティティです。CMIS仕様で定義されているように、ドキュメント・オブジェクトは、バージョニング可能、ファイリング可能、問合せ可能、制御可能およびACLControl可能にすることができます。前述のように、このリリースのContent Management REST Serviceでは、バージョニング、マルチファイリング、ポリシーまたはACLをサポートしていません。

ノードが(フォルダではなく)ドキュメントであると判断された場合、その子がCMISを介して公開されることはありません。CMISでは、各ドキュメント・オブジェクトは単一のコンテンツ・ストリームと関連付けることができます。このため、Content Management REST Serviceは、ノードに複数のコンテンツ・ストリームが関連付けられていたとしても、最大で1つのコンテンツ・ストリームを公開します。

フォルダ・オブジェクト

CMIS仕様では、フォルダ・オブジェクトはコンテンツ・ストリームを持たず、バージョニング可能ではありません。ノードがフォルダであると判断されると、Content Management REST Serviceはそのノードをこの方法で公開します(UCMでは、フォルダはコンテンツ・ストリームを持たず、バージョニング可能ではありません)。

リレーションシップ・オブジェクト

このリリースのContent Management REST Serviceではリレーションシップをサポートしていないため、「リレーションシップ・オブジェクト」の項は適用されません。

ポリシー・オブジェクト

このリリースのContent Management REST Serviceではポリシーをサポートしていないため、「ポリシー・オブジェクト」の項は適用されません。

アクセス制御

このリリースのContent Management REST ServiceではACLをサポートしていないため、「アクセス制御」の項のほとんどの内容は適用されません。許容されるアクションの詳細は、下記を参照してください。

AllowableActionsマッピング

この項では、オブジェクトに対して定義される許容可能なアクションを一覧表示します。このリリースの実装内容により、すべてのオブジェクトに対してハードコードされているアクションも一部あります。その他の許容可能なアクションは、リポジトリ構成に基づいて設定されます。

  • canGetObjectRelationships = false

  • canCreateRelationship = false

  • canGetDescendants = false

  • canCheckOut = false(バージョニング)

  • canCancelCheckOut = false(バージョニング)

  • canCheckIn = false(バージョニング)

  • canAddObjectToFolder = false(マルチファイリング)

  • canRemoveObjectFromFolder = false(アンファイリング/マルチファイリング)

  • canApplyPolicy = false

  • canGetAppliedPolicies = false

  • canRemovePolicy = false

  • canCreatePolicy = false

  • canApplyACL = false

  • canGetACL = false

  • canGetRenditions = false

  • canDeleteTree = false

  • canGetAllVersions = false(バージョニング)

バージョニング

このリリースのContent Management REST Serviceではバージョニングをサポートしていないため、2.10項は適用されません。

問合せ

CMIS問合せは結果セットを返します。結果セットの各エントリ・オブジェクトには、問合せで指定されたプロパティのみが含められます。Content Management REST Serviceでは問合せ内でのJOINをサポートしていないため、各結果エントリは単一ノードからのプロパティを表します。CM VCR検索に最も近い動作にするには、SELECT * FROM …のような問合せを使用します。

  • この問合せは常に単一リポジトリをターゲットにしています。Search.searchPathは常に/RepositoryId/となります。

  • FROM句は、検索するオブジェクトタイプを指定するものです。これはVCR式に変換され、検索を目的のタイプに絞り込むためにWHERE句の式とANDで結合されます。

    • FROM cmis:document ==> cm_isContent == true

    • FROM cmis:folder ==> cm_isHierarchy == true

    • FROM typeQueryName ==> cm_objectClassInstance == type.name(cm_objectClassInstanceが検索可能なシステム・プロパティの場合)またはFROM typeQueryName ==> cm_objectClass == type.name1(それ以外の場合)

  • cm_isContentシステム・プロパティが検索可能な場合、cmis:documentタイプは問合せ可能になります。

  • cm_isHierarchyシステム・プロパティが検索可能な場合、cmis:folderタイプは問合せ可能になります。

  • その他のタイプは、リポジトリ内で検索可能(ObjectClass.isSearchableがtrueを返す)であり、かつcm_objectClassかcm_objectClassInstanceのうちどちらかが検索可能なシステム・プロパティであれば、問合せ可能になります。

  • タイプのincludedInSuperTypeQuery属性は、cm_objectClassInstanceが検索可能なシステム・プロパティであれば、trueになります。

  • IN_FOLDER述語は、cm_parent_uid == folder.uidというVCR式として実装されます。

  • IN_TREE述語は、cm_path LIKE '/RepositoryId/folder/path/*'というVCR式として実装されます。

  • cmis:documentおよびcmis:folderのプロパティは、それに対応するcm_ systemプロパティが検索可能かつソート可能であれば、問合せ可能および順序付け可能となります。システム・プロパティは次のようにマッピングされます。

    • cmis:createdBy ==> cm_createdBy

    • cmis:lastModifiedBy ==> cm_modifiedBy

    • cmis:creationDate ==> cm_createdDate

    • cmis:lastModificationDate ==> cm_modifiedDate

    • cmis:name ==> cm_nodeName

    • cmis:contentStreamFileName ==> cm_binaryName

    • cmis:contentStreamLength ==> cm_binarySize

    • cmis:contentStreamMimeType ==> cm_contentType

    • cmis:objectId ==> cm_uid

    • cmis:objectTypeId ==> cm_objectClass


      注意:

      cmisの表現(ID)とVCRの表現(ObjectClass名)は異なるため、cmis:objectTypeIdが順序付け可能になることはありません。

    • cmis:path ==> cm_path

  • ネストされたプロパティは、問合せ可能でも順序付け可能でもありません。


注意:

CMIS問合せ内で表示できない機能が含まれるリポジトリもあれば、問合せ内で使用可能なCMIS問合せ述語(または述語の組合せ)が制限されるような制約を持つリポジトリもあります。前述のマッピングを参考にして、リポジトリの機能と制約によるCMIS問合せでの考慮事項を確認してください。

問合せの例については、「Content Management REST Serviceのベスト・プラクティスおよび例」を参照してください。WebLogic PortalでのUCM検索の制限事項および考慮事項の詳細は、WebLogic Portal UCM VCRアダプタ・ガイドコンテンツのモデリングのためのベスト・プラクティスに関する項を参照してください。

サービス

「サービス」の項で説明されているメソッドは、Content Management REST Serviceによって実装されています。具体的な実装の詳細は、次の項「CMIS第II部: RESTful AtomPubバインディング」で説明します。

CMIS第II部: RESTful AtomPubバインディング

CMIS仕様の「RESTful AtomPubバインディング」では、1つ以上のコンテンツ管理リポジトリとともに動作するアプリケーションで使用可能なAtomPubに基づいた仕様を定義しています。

構成

CMIS AtomPubサービスは、アプリケーション・ライブラリ・モジュールを参照することによりアプリケーション内に構成されます。earからアプリケーション・モジュールを参照すると、すべてのCMISリクエストを処理するWebアプリケーションがインストールされます。また、CMIS Webアプリケーションのcontext-root(デフォルトではcmisrest)をオーバーライドすることもできます。

アプリケーションのMETA-INF/weblogic-application.xml内に、次のようなセクションが追加されます。


注意:

Oracle WebLogic Portalのアプリケーション・ライブラリ・モジュールは、content-management-cmis-rest-app-lib.earです。Oracle WebCenterのアプリケーション・ライブラリ・モジュールは、content-management-jps-cmis-rest-app-lib.earです。

----
  <library-ref>
       <library-name>content-management-jps-cmis-rest-app-lib</library-name>
  </library-ref>
 
  <library-context-root-override>
          <context-root>cmisrest</context-root>
          <override-value>myAppNameCMISrest</override-value>
  </library-context-root-override>
----

サービス・ドキュメント

リポジトリのナビゲーションはすべて、AtomPubサービス・ドキュメントから開始されます。リポジトリ内のすべてのアクセス可能コンテンツの検出は、このドキュメントからコレクション、リンクおよびテンプレートを介して行うことができます。CMIS Webアプリケーションのコンテキスト・ルートからのサービス・ドキュメントのURIは、/cmis/repositoryです。

したがって、前述の例のようにアプリケーションがlibrary-context-root-overrideとともにデプロイされている場合、サービス・ドキュメントにはhttp://hostname:port/myAppNameCMISrest/cmis/repositoryというURLを介してアクセスします。

デフォルトではこのドキュメントに、構成済の各UCMリポジトリ用のワークスペースが含められます(Oracle WebCenterでは、CM VCRでサポートされるのはUCMリポジトリのみです)。単一リポジトリのサービス・ドキュメントを取得するには、「CMIS AtomPubバインディング」仕様の5項で説明されているように、repositoryId問合せパラメータを使用します。

前項で説明したように、サービス・ドキュメントはAtomPubワークスペースから構成されます。各ワークスペースはCM VCRリポジトリにマッピングされます。

サービス・ドキュメントを越える特定のURIは公開されません。ユーザーはサービス・ドキュメントから開始して、予測されたパスを使用してコレクションやリンクにナビゲートすることが想定されるためです。コレクションのリンクとタイトルおよびタイプとの関係はすべてCMIS仕様で定義されているため、一般的にはクライアント実装によるナビゲートが可能です。また、パスによるオブジェクトへのアクセス、IDによるオブジェクトへのアクセス、IDによるタイプへのアクセス、および問合せへのアクセスを簡単に行うためにリポジトリごとに定義されたテンプレートもあります。パスおよびIDのテンプレートでの変数の書式を確認するには、フォルダおよびドキュメントのエントリを参照してください。

レスポンス・フォーマット

2.2項: 「レスポンス・フォーマット」では、Acceptヘッダー内に表示されているサポート対象のメディア・タイプでオーバーライドされないかぎり、デフォルトでAtom/AtomPubスタイル・フォーマットが返されることが示されています。

一般的なAtomPubフィード・リーダーを使用すると、CMIS RESTサーバーにより返されたフィードをウォークスルーできます。すべてのCMIS詳細が表示されるわけではありませんが、リンクをナビゲートすることはできます。一般に、フィード・リーダーを設定するためには、特定のフィードのURIがわかっている必要があります。このURIは、サービス・ドキュメント(たとえば、typesdescendantsのワークスペース・リンク)をナビゲートすることにより確認できます。

問合せ構文の詳細は、CMIS仕様を参照してください。Content Management REST Serviceのベスト・プラクティスおよび例については、次項「Content Management REST Serviceのベスト・プラクティスおよび例」を参照してください。

Content Management REST Serviceのベスト・プラクティスおよび例

この項では、Content Management REST Serviceの使用に関するベスト・プラクティスおよび例を示します。問合せ構文の詳細は、CMIS仕様を参照してください。

ベスト・プラクティス

Content Management REST Serviceを使用するリポジトリに対して推奨されるベスト・プラクティスを次に示します。

  • フォルダ・ノードとドキュメント・ノードは明確に区別してください。

  • 問合せの可読性を向上させるために、ObjectTypeおよびPropertyDefinitionの名前には英数字以外の文字を使用しないでください。

Content Management REST Serviceの例

この項では、問合せの例をいくつか示します。問合せ構文の詳細は、CMIS仕様を参照してください。(問合せのURI全部を取得するには、サービス・ドキュメント内の問合せURIテンプレートを参照してください。)

  • SELECT * from cmis:folder

  • SELECT cmis:name, cmis:contentStreamFileName, cmis:contentStreamMimeType, cmis:contentStreamLength FROM cmis:document WHERE cmis:contentStreamFileName = 'BinaryName' AND cmis:contentStreamMimeType = 'text/html' AND cmis:contentStreamLength > 1

  • SELECT cmis:name, cmis:creationDate, cmis:lastModificationDate FROM cmis:folder WHERE cmis:name = 'Trash' AND cmis:lastModificationDate > TIMESTAMP '2008-05-18T10:32:44.703-06:00'

  • SELECT * FROM cmis:document WHERE cmis:name LIKE 'baker%'

  • SELECT * FROM cmis:document WHERE cmis:name NOT IN ('nodeBoolean', 'nodeLong')

  • SELECT cmis:name from cmis:document where IN_TREE('/StellentRepository')

  • SELECT * FROM ora:t:IDC:GlobalProfile where ora:p:dRevClassID > 1

  • SELECT * FROM ora:t:IDC:GlobalProfile where ora:p:xBooleanTestField = FALSE

  • SELECT ora:p:xMultiValuedDelimiterTest from ora:t:IDC:GlobalProfile where ANY ora:p:xMultiValuedDelimiterTest NOT IN ('four')

ドキュメントのアクセシビリティについて

オラクル社は、障害のあるお客様を含む、すべてのお客様にオラクル社の製品、サービスおよびサポート・ドキュメントをご利用いただけることを目標としています。 オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。 HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。 標準規格は改善されつつあります。オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。 オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/accessibility/を参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて

スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合があります。コード表記規則では閉じ括弧のみを行に記述する必要があります。しかし、一部のスクリーン・リーダーは括弧のみの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて

このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。

聴覚に障害がある場合のOracleサポート・サービスへのアクセス

Oracleサポート・サービスへのご連絡には、テレコミュニケーション・リレー・サービス(TRS)を利用してOracleサポート(1.800.223.1711)までお電話ください。Oracleサポート・サービスのエンジニアがOracleサービス・リクエスト・プロセスに従って技術的な問題に対処し、カスタマ・サポートを提供します。TRSについてはhttp://www.fcc.gov/cgb/consumerfacts/trs.htmlを、利用可能な電話番号の一覧はhttp://www.fcc.gov/cgb/dro/trsphonebk.htmlを参照してください。


Oracle Fusion Middleware Content Management REST Service開発者ガイド, 11g リリース1(11.1.1)

B61393-01

Copyright (C) 2010, Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアを危険が伴うアプリケーションで使用する際、このソフトウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

Oracle、JD Edwards、PeopleSoftおよびSiebelはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。