オルタナティブ・ブログ > Cathedral Break in Action >

エンタープライズ(企業)向けのオープンソースとか育児とかについて考えていきます。

NetCommons meets NemakiWare

»

先日、オープンソースコンソーシアムのビジネスアプリケーション部会がありました。普段はセミナーをやったり、セミナーや展示会に向けての話し合いをしたりしてるのですが、この日は、CMS部会と合同で、実際に手を動かしてみよう、ということでワークショップ形式で14時から半日かけてやるというけっこうハードな企画となりました。

CMS部会でおなじみの国産オープンソースCMSである NetCommons と、弊社が開発を進めているECMリポジトリ NemakiWare を連携させるという試みです。これまでにも書いてきましたが、 NemakiWare は CMIS 規格という標準規格に準拠しており、 API の固まりです。フロントエンドに CMS を持ってきて、そこであつかうファイルをすべて NemakiWare が管理する、というような仕組みは NemakiWare のコンセプトにも合致した理想的なシステム統合とも言えます。

今回はゴールを「NewCommons のファイルアップロード部分で、ローカルに保存しているものを、ローカルとNemakiWareの両方に保存することでバックアップ的に使えるサンプルを作る」ということにしました。実際は完全にNemakiWare側にファイルを保存するようにするのが理想なのですが、そうするとファイル保存だけでなくファイル呼び出し部分も書き直さなくてはならず、時間的な制約があるため、このかたちをひとまずのゴールとしました。「使えることをこだわるあまり未完成で終わる」よりも「多少サンプル的であっても半日で作り上げてしまう」ことの方が価値があると考えたためです。

API の規格はかっちりしてますし、PHPのライブラリも Apache から提供されているので、すんなりできるかとおもいましたが、意外と苦戦しました。CMIS 関連のライブラリは Apache Chemistry というプロジェクトで管理されており、各言語で CMIS を便利に扱えるライブラリが用意されています。されているのですが、ライブラリによって開発の活発度が異なっており、いちばんちゃんと管理されているのは Java で、あとはどれもメンテナンスは鈍い感じなのですね。で、PHPのライブラリは、最新のソースコードだと、インクルードに不足があってサンプルコードが動きません。ぼく自身は PHP のことがまったくわからなかったのですが、NetCommons を扱ってるみなさんはさすがに知識があって、なんとかサンプルコードを動かすことに成功。それをさらに NetCommons のファイルアップロード部分に適用してみると......、無事 NemakiWare にファイルがアップロードされました!

これを実際のアドオンまでもっていくにはまだまだ課題はありそうです。NetCommonsではファイルはすべて新規追加、更新という概念がないそうです。NemakiWare は ECM なのでファイルの履歴管理は得意なのですが「このファイルとこのファイルは同じものである」という情報がないと履歴は取れません。ファイル名が唯一の手がかりですが、常に新規追加として扱っている NetCommons 側では同じファイル名であっても、まったく別のファイルである可能性もあるので厳密にやろうとすると、けっこうリッチなUIをもつキャビネットアドオンみたいなものを作る必要があるのかも知れません。単にファイル名が同一であれば同じと見なして履歴を取ってしまう、という割り切りであればよいですね。

頭の中では「APIがあるんだし、そりゃ連携は出来るよなー」と思ったりするのですが、実際に触ってみるといろいろ分かることがあったりして面白いですね。CMSによって「ファイルをどう扱っているか」が違うという、考えてみれば当たり前のことが分かったのも大きいです。API 叩くだけなんだから、どんなCMSだって連携できる、と思ってましたが、「連携しやすいファイル構造をすでに持っている CMS ならずっと連携しやすい」ということがわかったので、他の CMS もいろいろ見てみたいなーと思いました。

Drupal とか WordPress みたいに海外製の CMS だとグローバル展開している過程で誰かが必ず CMIS 連携を試みるのか、標準あるいはアドオンで連携が取れたりするのはわりと当たり前なのですが、国内では CMIS という規格自体がはやってないこともあって、CMS でその口を持っているものは国産のCMSだと聞いたことがありません。これをきっかけにいろんな国産 CMS で試して見たいものです。

そもそも、CMS と NemakiWare が連携するとなにが嬉しいか、ってことなのですが、「ファイルの履歴」「全文検索」「編集ロック」などが丸投げできるというあたりでしょう。ただ、CMS だけで業務が完結してしまうとわざわざシステムを二つ用意するというのはちょっと過剰なケースも多いかと思います。バックエンドのECMへのアクセスが複数の業務システムから行われるとより価値が出るんじゃないかとおもいます(社内向けのポータルサイトとCRMの両方から参照されるとか、外部向けのカタログサイトと内部向けのの商品管理サイトの両方から参照されるとか)。このあたりはわれわれも事例を貯めているところなので、今後も検討していきたいところです。

Comment(0)