さまざまなクラウドサービスが充実している現在、アプリケーションがそれらを利用して、自らの機能を簡単に拡張できるしくみを持つことは、ビジネスに対する柔軟性を持たせる意味でも重要です。企業で利用するアプリケーションは、こうした他のサービスとのインテグレーションが簡単に実現できるものを選定すべきでしょう。今回は、コンテンツ管理製品であるAlfresco Content Services(以下Alfresco)で画像データを保存する際に、その画像データをクラウドサービスで解析し、その解析結果を画像にタグ付けする例を紹介します。これによって、保存された画像をファイル名や作成者名からだけでなく、セマンティックに検索できるようになります。その結果、必要な情報を発見しやすくなり、生産性も向上します。
Alfrescoでの拡張方法
Alfrescoのリポジトリは、Spring Frameworkがベースとなっており、実装を変更したり、処理を追加することが容易になっています。この設計が、Alfrescoの機能拡張ポイントの充実につながっており、オリジナルのソースに手を入れなくても、作法に従って機能を拡張できるようになっています。Alfrescoの機能拡張ポイントの1つである「アクション」は、コンテンツに対する振る舞いを追加することができます。たとえば、コンテンツが登録されたとか、更新されたとかのタイミングで、何かのアクションを行わせたり、UIの操作から動作を関連付けたりすることができます。今回はこのアクションを使ってAIサービスを呼び出し、画像にタグ付けを行い、画像を検索可能にする例を紹介します[1]。
アクションクラスの実装
アクションを利用するには、まずはそのアクションの実体をアクションクラスに実装します。これはorg.alfresco.repo.action.executer.ActionExecuterAbstractBaseを継承したexecuteImpl()内に記載します。リスト1のコード例では、imgRecognitionServiceのsetTagsを呼び出し、タグ付けをしています。
作成したアクションをAlfresco内で使うために、beanとして登録します。リスト2の例では、IBM WatsonのVisual Recognitionを使って画像を認識しています。
以上の設定が済んだら、ビルドします。ビルドして作成したampファイルを、Alfrescoに適用したあと、Alfrescoを再起動します。
フォルダルールの設定
アクションを利用する簡単な方法の1つは、フォルダルールから利用することです。ここではフォルダルールで、画像がフォルダに入ったタイミングで、作成したアクションが呼び出されるように設定してみます。
まずは、フォルダの右側のメニューから「ルールの管理」を選択します(図1)。まだフォルダにルールがないので、「ルールを作成する」を選択します(図2)。
新しいルールとして、図3のように、ルールに対する名前、説明、実行条件を設定します。実行条件には、
- トリガーとなる条件(アイテムがこのフォルダに作成または入力されたとき、アイテムが更新されたとき、アイテムがこのフォルダから削除または送り出されたとき)
- プロパティ値の条件(名前、MIMEタイプ、作成者、作成日付などのプロパティ値)
を設定することができます。実行するアクションに、作成したアクションクラス「画像認識タグ付け」が見えます(service-context.xmlの中でラベルを付ける設定をしています)。これを設定し、「作成」ボタンを押すと、ルールが作成されます。
後編では、作成したルールが機能し、画像へのタグ付けができるかを試してみましょう。
日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!
- リックソフトJIRAデモ環境
- https://www.ricksoft.jp/demo/
- 第1特集
MySQL アプリ開発者の必修5科目
不意なトラブルに困らないためのRDB基礎知識
- 第2特集
「知りたい」「使いたい」「発信したい」をかなえる
OSSソースコードリーディングのススメ
- 特別企画
企業のシステムを支えるOSとエコシステムの全貌
[特別企画]Red Hat Enterprise Linux 9最新ガイド
- 短期連載
今さら聞けないSSH
[前編]リモートログインとコマンドの実行
- 短期連載
MySQLで学ぶ文字コード
[最終回]文字コードのハマりどころTips集
- 短期連載
新生「Ansible」徹底解説
[4]Playbookの実行環境(基礎編)