Wednesday, September 26, 2012

Alfrescoのチューニングポイント(概要)

mryoshioです。

今日の内容はAlfrescoについての話になります。Alfrescoについてのインストールや初期設定については書き秋田こういう他の記事を参考にして頂くとして、今日はチューニングポイントの概要として少しだけ突っ込んだ話を書きたいと思います。
システムを構築する上で当然パフォーマンスには注意しなければならず、Alfrescoを使う場合でも同様です。JVMチューニングについてはここで少し触れられていますが、Alfrescoのチューニングポイントについての日本語のまとめは情報としてないと思います。そのため今日の内容を書くことにしました。

次の図は、インターネット経由でAlfrescoへアクセスするまでの流れです。

チューニングポイント

今回触れるのはポイントCとします。
AP(アプリケーション)サーバとしてTomcatを使っているという前提で進めます。
  • JVMの設定
    • bin/catalina.sh(Windowsの場合はcatalina.bat)
      • ヒープ領域の最大サイズ(Xmx)
      • ヒープ領域の最小サイズ(Xms)
      • Permanent領域の最大サイズ(MaxPermSize)
  • アプリケーションサーバソフトウェアの設定
    • server.xml
      • 最大スレッド数(maxThreads)
  • DBコネクションプールの設定
    • shared/classes/alfresco-global.properties
      • 最大プール数(db.pool.max)
      • インデクスリカバリ時の最大プール数(index.recovery.maximumPoolSize)
  • Luceneの設定
    • (設定項目が多いので別の機会)にご説明します。
普段Alfrescoを触っていてレスポンスが遅いと感じた場合、以上の項目をまず始めにチェックします。JVMの設定とアプリケーションサーバソフトウェアに関してはAlfrescoならではの話でないので割愛します。DBコネクションプールおよびLuceneの設定についてですが、まず前提としてお話したいのが、ほとんどの項目を設定をalfresco-global.properitesで行えるということです。ですので、Alfresco固有の設定はこのファイルで行うことになります。

DBコネクションプールについては、まずdb.pool.maxを確認します。たとえば、利用しているDBの最大接続数が200となっている時にAlfrescoの設定が32となっていると当然ながら最大性能を発揮するには程遠くなりますので注意しましょう。次にindex.recovery.maximumPoolSizeです。これは、Alfrescoが使うLuceneインデクスをリカバリ(再構築)する際に使用する最大プール数です。もしインデクスリカバリを実行していて遅いと感じた場合はここが関係している可能性があります。

4つ目のLuceneの設定に関しては、項目が多いのでまた別の機会に書きたいと思います。

他にsystem.acl.maxPermissionCheckTimeMillis等の設定についても書きたかったのですが、パフォーマンスとは異なるのでそれもまた別の機会に。

@mryoshio


Wednesday, September 19, 2012

AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう

こんにちは。大谷です。
今回は、Alfresco 4.0のMicrosoft Office連携について説明しようと思います。


Microsoft Office連携って何?


一言で表すと、AlfrescoがSharePointサーバのふりをするということになります。AlfrescoがSharePointプロトコルを話すことで実現しているのですが、これにより、SharePointサーバで提供されている以下の2つの機能がAlfrescoでも利用できるようになります。
  • Microsoft OfficeアプリケーションからSharePoint(Alfresco)サーバ上のリポジトリを参照し、ファイルを開く
  • SharePoint(Alfresco)サーバ上のファイルを直接Microsoft Officeアプリケーションで開き、編集、保存する
上記2機能はAlfrescoに同一の設定を施すことで利用可能になりますが、今回は後者の動作のみを確認してみようと思います(まあ後者の機能が正常に機能する場合は前者も正常に機能するはずです)。
ちなみに後者は、ローカル(オフライン)へのファイルダウンロードや、ローカルからの更新ファイルのアップロードを明示的に行う必要がないため、「オンライン編集」機能と呼ばれます。


ではまず機能のインストールから


では、早速機能のインストール方法を見てみましょう。

Alfrescoのインストールから始める場合は、「Alfresco4.0をインストールしてみよう(インストーラ編)」を参考にしてインストールを進めますが、「コンポーネントを選択」画面で「SharePoint」にチェックを付けるとMicrosoft Office連携機能が有効になります。インストールが完了したら、Alfresco側の設定は完了です。



既にAlfrescoがインストールされている場合、もしくはこれから手動でインストールする場合は、連携用コンポーネントを別途追加する必要があります。Download and Install Alfrescoの「Custom Installs & Optional Modules」から「SharePoint Protocol support」のzipファイル(4.0.eの場合はalfresco-community-spp-4.0.e.zip)をダウンロードして展開し、中身のAMPファイル(alfresco-community-spp-4.0.e.amp)をModule Management Toolを使ってインストールします。

※ Alfrescoを手動でインストールする場合は、「Alfresco4.0をインストールしてみよう(手動インストール編)」を参考にしてください。


クライアント側の設定と動作確認をしてみるが…


続いて、クライアント側の設定を行います。まずは、Web フォルダのソフトウェア更新プログラム: KB907306を適用します。

ひとまずこの状態でオンライン編集の挙動を確認してみましょう。確認手順は以下のとおりです。
  1. ブラウザで http://localhost:8080/share/ にログインする
  2. 「あなたのサイト」ダッシュレットに表示されているサンプルサイト「Web Site Design Project」をクリックする
  3. 「Project Library」をクリックする
  4. Microsoft Officeのファイルをアップロードする(例えばdocxファイルとか)
  5. アップロードしたファイルの「その他のアクション」->「オンライン編集」をクリックする
  6. 「ドキュメントを開く」ダイアログが表示されるので「OK」をクリックする




お、ちゃんとMicrosoft Officeアプリケーションが起動したぞ!と喜ぶのもつかの間、「このWebサーバーへのアクセスは規定で無効になっています。...」というダイアログが表示され、ファイルを開くことができません。



接続のSSL化か、認証レベルの変更か


上記のダイアログ、実はSSLでのアクセスじゃないとファイルを開けませんよ、という内容です。なので、対応方法は「SSL化する」「Microsoft Officeの認証レベルを非SSLを許可するように変更する」のどちらかになります。もちろんお勧めはSSL化なのですが、 今回はてっとり早く後者で対応したいと思います。
なお、1.についてはAlfresco Help - Setting up SharePoint Protocol Support to work with HTTPSに詳細な設定手順が書かれていますので参考にしてください。

Microsoft Officeの認証レベル変更は以下のように行います。
  1. クライアントPCでレジストリエディタを起動します(「ファイル名を指定して実行」->「regedit」)
  2. レジストリキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel」の値を2に変更する(キーが無い場合はREG_DWORDで作成する)
  3. レジストリキー「HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet\BasicAuthLevel」の値を2に変更する(キーが無い場合はREG_DWORDで作成する)
これで非SSL接続を許可する設定になったので、再度オンライン編集の挙動を確認してみましょう。以下のダイアログが表示され、ユーザー名とパスワードを入力してファイルが開ければOKです。


続いて、実際に編集し、ファイルを上書き保存してみましょう。すると、Alfresco上のファイルが自動で更新され、ファイルが新しくなっていることが確認できると思います(以下の例では、オンライン編集で「オンライン編集してみたよ!!!!!」という文字列を追加しました)。



最後に


以上がオンライン編集機能の基本的な設定方法と使い方です。なお、オンライン編集は、リポジトリ(Alfrescoのヘッダの「リポジトリ」リンクから辿れるやつ)では利用できず、各サイト内の文書ライブラリでしか利用できないことに注意してください。

また、上記以外にも環境に合わせた様々な設定項目がありますので、さらなる詳細についてはAlfresco Help - Installing and configuring Microsoft Office SharePoint Protocol Supportを参考にしてください。


(2014/06/11追記)  「Alfresco 4.2のMicrosoft Office連携(オンライン編集機能)をSSL化する」を公開しました。こちらの記事ではレジストリをいじることなくOffice連携を実現する方法を紹介しています。

Wednesday, September 5, 2012

Alfresco勉強会#9 振り返り


皆さんこんにちは。

先日行われた第9回Alfresco勉強会のご報告です。
今回は、aegifの二人が資料を元に発表を行いました。

1つ目は林さん(@linzhixing)の「やさしいShareダッシュレットの作り方」でした。
タイトルのヒエログリフから窺える通り、なかなか言葉(文字数)が詰まった資料で
非常に読み応えがある仕上がりになっています。事例としてあまり上がってこないAlfresco Shareのダッシュレットの作成について丁寧な説明が為されています。
ダッシュレットの作り方、サンプルコードも豊富で後々の参考資料として充分に
活用できると思います。ぜひご覧ください。

2つ目は私の「Alfrescoクラスタリング入門」になります。
Mac上のAlfrescoとVMware上のUbuntu上に構築したAlfrescoの間で
次のものを同期させる為の設定について解説しています。

  • コンテンツストア
  • キャッシュ
  • Luceneインデクス
資料を通して見て頂くと、
実際にはセッション情報等他のものの冗長化も必要になるとは思いますが、
Alfrescoをクラスタリング構成にするのが非常に簡単であることが分かるはずです。


次回は9/19(水)を予定しています。
ご興味ある方はぜひどうぞ!
失敗談でも結構ですので、気楽に発表も頂ければと思います。
@mryoshio