Thursday, December 25, 2014

それ、CMISで繋げます(Liferay編その1)

CMISは文書管理リポジトリにアクセスするための仕様ですが、「CMIS対応しているっていうけど、何ができるの?」という質問を最近ときどき頂きます。

何ができるか、という質問に対する答えは、技術的な観点に限定しても、以下の2つの要素に分解できるでしょう。
・CMIS単体で提供される、文書管理機能のセット
・CMISによるシステム間連携

CMISは、連携、あるいはデータやサービスの相互運用性(interoperability)を主眼として策定されたもので、そのために文書管理機能としてはいろんなECMの最大公約数的な機能に絞られています。そういう意味では、CMISで実際にいろいろ繋いだものをお見せするのが、CMISのメリットを理解していただく早道かと思います。
(※最大公約数とはいえ、CMISの提供する文書管理機能にもある種のクセはあるのでその点は機会があれば別途)

 Liferayと繋いでみた

というわけで初回はLiferayと繋いでみましょう。
Liferayでは、そのCMS的な機能のバックエンドとして、バージョン6.1からCMISリポジトリをサポートしています。

ここではLiferay6.2を使用して、弊社製品であるCMIS対応の文書管理リポジトリであるNemakiWareに接続してみます。
NemakiWareを使う理由なのですが、単に弊社製品だからという商売っ気だけでなく、実際にCMIS仕様の遵守率が100%で、他ECMと比較しても現時点で1位にあるからです。
http://cmissync.org/CmisCompat/

NemakiWare自体のインストール・起動はまた別途ご紹介しますが、
インストーラのダウンロード:こちら
インストール・起動方法:こちら
になります。

CMIS接続のための設定は、LiferayのWiki(英語)を参照しました。
 
 

下準備

Liferay側での下準備として、ポータルのプロパティ(portal-ext.propertiesなど、プロパティの上書き機構に準ずる)に
session.store.password=true
company.security.auth.type=screenName 
と設定します。
 
この設定では、Liferay上のログインユーザ持つスクリーン名/パスワードが、CMISリポジトリにログインするためのユーザID/パスワードと一致している必要があります。
LiferayのUIからCMISリポジトリを操作することになるので、Liferayのログインユーザ情報がCMISリポジトリのログインユーザ情報として引き渡されるためです。
もしCMISリポジトリがLDAP認証などに対応していれば、ID/PWDは簡単に統一化できるでしょう。

ここではLiferay、NemakiWareともに、admin/adminユーザでログインするものとします。

リポジトリの追加

AdminメニューのContentを開きます。

左側のペインからDocument and Mediaを開き、AddボタンのドロップダウンメニューからRepositoryを選択します。

新規に追加するリポジトリのために、設定項目を入力します。
重要なのは
RepositoryType
CMISには接続方式として、WebService、AtomPub(およびBrowser)が定義されています。ここではAtomPubが推奨されています。
AtomPub URL
AtomPubで接続する場合のコンテキストURLを入力します。おつかいのCMISリポジトリによって当然異なります。なお、このURLを開こうとするとリポジトリ全体の情報を記述したxmlファイルがダウンロードできます。NemakiWareの場合はデフォルトで
http://localhost:8080/core/atom
です。
RepositoryID
省略可能です。
CMISサーバでは、一番大きな単位としてリポジトリがあり、1つのCMISサーバは複数のリポジトリを持てることになっています。ですが実際は「メイン」リポジトリが1つだけということも珍しくありません。
この値を省略すると、CMISサーバ側で設定されているメインリポジトリが自動的に選択される仕組みになっています。

最後にもう1つ、Permissionという設定項目がありますが、これはLiferay上で、このCMISリポジトリを見られるユーザを制限するものです。CMIS側の権限設定とは関係ありません。
値にはAnyone(Guest Role), Site Members, Ownerがあります。

以上、設定できたらSaveを押したら、リポジトリの追加完了です。

Liferayのスクリーン名/パスワードがCMISリポジトリのそれと一致していない場合は、エラーになります。上手く行かない場合はCMISリポジトリ側のエラーログを見てください。

コンテンツの表示

CMISリポジトリにあるコンテンツに、LiferayのUIからアクセスできることを確認してください。ファイルに対して、コンテキストメニュー的なものも表示されていますね。アクションとしてCheckoutも行えるようです。

Checkout時の挙動については、CMISリポジトリごとに微妙に揺れがあるので、また次回の話題とさせていただきます。

なお、画像にもあるようにリポジトリを追加すると"Access these files offline using Liferay Sync."というメッセージが表示されます。Liferay Syncの説明はここでは省きますが、オフラインのときにした編集でもDropboxライクに同期できる仕組みです。

CMISリポジトリに限っていえば、CMISインタフェースのレベルでCmisSyncというDropboxライクな同期ツールが既に存在していますので、そちらもご検討ください。と陰に陽に自社製品をご紹介させてもらいまして、今回の結びとさせていただきます。


(文:linzhixing)

1 comment: