Thursday, January 16, 2014

Alfresco Workdesk サンプルアプリケーションのインストール

こんにちは。てらしたです。

今日は初めて保育参観というものに参加してきました。写真とかビデオを撮っていいものとは知らずカメラを持っていかなかったんですが、父親と母親、母親とおばあちゃんみたいなかんじで2人体制で来て、片方が子どもの相手をし(保護者参加型だったので)、手が空いている方が撮影するというフォーメーションを組んでいる親御さん達がいて、そういうやり方があるのかと勉強になりました。次回に活かしたいと思います。それはともかく保育参観自体は保育園での様子や子どもの個性の違いが見れて楽しかったです。仕事の都合がつけばなるべく参加していきたいですね。

さて、ここから本題ですが今回はWorkdeskシリーズ第3弾です。「Workdeskを触ってみよう」の回ではAlfresco社が用意したリポジトリに接続してWorkdeskを体験してみましたが、今回は手元のAlfrescoにWorkdeskに同梱されているサンプルアプリケーション(Human Resource Application)をインストールしてみます。以下の手順では環境はCentOSを想定していますが、ファイルをコピーしたりLinux用に用意されたスクリプトを実行したりしているだけなのでWindowsの方にも参考になると思います(もちろんWindows用のスクリプトもあります)。

まず準備としてこのあたりを参考にAlfrescoをインストールしておいてください。Community Edition(以下、CE)でもEnterprise Edition(以下、EE)のTrial版でもどちらでも結構です。

WorkdeskについてはCEでもEEでも今回の手順はほとんど変わらないのですが、次回ご紹介する内容がEEにしかない機能なのでEEのTrial版を使用してもらった方がよいと思います。もちろん、CEとEE両方の環境を作ってもらっても全く問題ありませんし、両者を比較してみるのもよいかもしれません。以下の手順ではEEのTrial版を使います。

Workdeskのzipをダウンロードしたら、適当な場所に展開しておきます。次にAlfresco用のものとは別にTomcatをインストールし(Alfresco用のTomcatインスタンスとポートが競合しないようにserver.xmlを編集しておいてください)、webapps以下に展開したWorkdeskのzipの中の「bin/workdesk」をコピーします。
$ cp -a bin/workdesk <tomcat_dir>/webapps/
次にAlfresco社が用意したTrial用のリポジトリではなく、この後インストールするサンプルアプリケーションを使うようにWorkdeskの設定を変更します。Workdeskのweb.xmlを編集し、「opencmis_trial」を使用するように設定されているパラメータを以下のように「opencmis_hr」を使用するように変更します。
$ vi <tomcat_dir>/webapps/workdesk/WEB-INF/web.xml
<!-- Configuration OpenCMIS: Apache Chemistry OpenCMIS (opencmis.OwCMISNetwork) implementation
    + Sample Application - Human Resources Application -->
<param-value>deploy#WEB-INF/conf/opencmis_hr</param-value>

<!-- Configuration OpenCMIS: Alfresco Workdesk Trial -->
<!-- <param-value>deploy#WEB-INF/conf/opencmis_trial</param-value> -->
次に、「opencmis_hr」の設定を変更します。owbootstrap.xmlを編集し、Authentication modeを「NONE」から「ALFRESCO」に、DataSourceをMySQLに設定します(他のDBを使う場合はその設定を有効化してください)。
$ vi <tomcat_dir>/webapps/workdesk/WEB-INF/conf/opencmis_hr/owbootstrap.xml
<!-- <Authentication mode="NONE”/> -->

<!-- ALFRESCO -->
<Authentication mode="ALFRESCO">
    <BaseURL>http://localhost:8080/alfresco</BaseURL>
</Authentication>
<!-- DefaultDataSource>
    <JNDIName>java:/HSQLDB</JNDIName>
</DefaultDataSource -->

<!-- DefaultDataSource>
    <JNDIName>java:/OracleDS</JNDIName>
</DefaultDataSource -->

<!-- DefaultDataSource>
    <JNDIName>java:/MSSQLDS</JNDIName>
</DefaultDataSource -->

<!-- DefaultDataSource>
    <JNDIName>java:/DB2DS</JNDIName>
</DefaultDataSource -->            

<DefaultDataSource>
    <JNDIName>java:/MySQLDS</JNDIName>
</DefaultDataSource>

<!-- DefaultDataSource>
    <JNDIName>java:/PostgreSQLDS</JNDIName>
</DefaultDataSource> -->
次にWorkdeskが使用するDBとテーブルを作成します。ここではMySQL用のスクリプトを使用していますが、他のDBを使っている場合はそのDB用のスクリプトを使ってください。
$ mysql -u root -p < db/scripts/create_mysql_databases/Create_MySQL_Database.sql
$ mysql -u root -p < db/scripts/OwMySQL_CreateAttributeBagTable.sql
$ mysql -u root -p < db/scripts/OwMySQL_CreateDBHistoryManagerTable.sql
$ mysql -u root -p < db/scripts/OwMySQL_CreateDBRoleManagerTable.sql
ここで、HistoryManagerTableとRoleManagerTableはEEにしかない機能で使用するものであるため、CEにはこれらのテーブルを作成するスクリプトは含まれていません。

次にWorkdeskが今作成したDBに接続するための設定を行います。展開したWorkdeskのの「db/tomcat/META-INF/context.xml」をTomcatにコピーし、編集します。
$ cp db/tomcat/META-INF/context.xml <tomcat_home>/webapps/workdesk/META-INF/
$ vi <tomcat_dir>/webapps/workdesk/META-INF/context.xml
使用するDBの部分のコメントアウトを外して有効化し、ユーザ名、パスワード、ホスト名、DB名を補完します。
<Resource name="java:/MySQLDS"
    auth="Container"
    type="javax.sql.DataSource"
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    username=“owdemo"
    password=“owdemo"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/owd?autoReconnect=true"
    maxWait="1000"
    removeAbandoned="true"
    maxActive="30"
    maxIdle="10"
    removeAbandonedTimeout="60"
    logAbandoned="true"
    validationQuery="select 1"/>
最後に、サンプルアプリケーションをインストールするスクリプトを実行します。まず展開したWorkdeskの「bin/Sample Application/Human Resources Application」ディレクトリ以下を「/opt/workdesk/sample_application」にコピーします(コピー先はどこでもよいですが、パスにスペースや日本語を含まないように気を付けてください)。
$ cp -a bin/Sample\ Application/Human\ Resources\ Application/* /opt/workdesk/sample_application/
次に、シェルスクリプトの引数の数が10個以上ある関係でCentOSではうまくいかないのでスクリプトを以下のように書き換えます。
$ vi /opt/workdesk/sample_application/bin/oa.sh
#!/bin/sh

OA_JAR=$(dirname $0)/oa.jar

# 変更前
# echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
# 変更後
echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}

# 変更前
# java -jar $OA_JAR  $1 $2 $3  $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17
# 変更後
java -jar $OA_JAR  $1 $2 $3  $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} ${16} ${17}
スクリプトを書き換えたら以下のように引数を与えて実行します。
$ /opt/workdesk/sample_application/install-workdesk-hr.sh -ap <Alfrescoのインストールディレクトリ> -u <Alfrescoの管理者ユーザのID> -p <Alfrescoの管理者ユーザのパスワード>
【例】
$ /opt/workdesk/sample_application/install-workdesk-hr.sh -ap /opt/alfresco -u admin -p admin
インストールに成功したらWorkdeskを起動します。Alfrescoはサンプルアプリケーションをインストールする過程で起動しているはずですが、もし起動していないようであれば起動しておいてください。
$ <tomcat_dir>/bin/startup.sh
正常に起動したらブラウザから以下のURLにアクセスしてみます(手元の環境ではTomcatのポートをAlfrescoと競合しないよう8180に変えてあります)。

http://localhost:8180/workdesk

ログイン画面が表示されたらAlfrescoの管理者ユーザのユーザ名とパスワードでログインします。以下のように人事関連のドキュメントを検索する検索テンプレートがいくつか表示されていればサンプルアプリケーションのインストールは成功です。



試しに「関係書類の検索」を選んで何も入力せずに「検索」ボタンを押してみましょう。先ほどのインストール時に手元のAlfrescoに投入された人事関連の文書がヒットすると思います。



検索結果から適当な社員を選んでアイコンをクリックすると、その社員に関連する書類を閲覧することができます。



以上でサンプルアプリケーションのインストールは終了ですが、ついでに1つWorkdeskの機能をご紹介したいと思います。このフォルダをAlfresco Shareから見ると、上のように「雇用条件」や「報酬」のようにフォルダは切られておらず、すべてのファイルが1階層で入っていることがわかります。



このように、参照しているリポジトリの物理的なフォルダ階層に依らず、Workdeskでは仮想的なフォルダ階層を定義してコンテンツを表示することができます。このような仮想的なフォルダの作り方についても今度ご紹介できればと思います。

No comments: