Bedework3.6を試してみた

Bedeworkは、BSDライセンスオープンソースのカレンダーです。

デフォルトの画面デザインはいまいちですが。繰り返しや参加者へのメッセージ送信など基本的な機能は揃っており、CalDAVサーバー機能もあります。
どちらかというと、CalDAVサーバーはRFCの仕様を良く実装しているのでこちらが特徴になるかと思います。
infoScoop Calendarは、Bedework 3.5のCalDAVサーバーを利用していますが、3.5のCalDAVサーバーはあまりパフォーマンスが良くありません(スケジュールのメッセージのやり取りや参加者へのイベントのコピーに時間がかかる)。3.6では、この辺りをJMSで非同期化してパフォーマンスが改善しているというので試してみることに。

Bedeworkは、ダウンロードサイトからクイックスタートをダウンロードします。

事前にインストールしておく必要があるのは、JDK6が必要です。
また、JAVA_HOMEを設定しておく必要があります。

クイックスタートには、動作に必要なデータベース(Derby)を始めアプリケーションサーバー(JBoss)もすべて同梱されています。
起動は、quickstart-3.6.zipダウンロードして解凍後、以下のコマンドを順に実行するだけです。

Windowsの場合は、JavaのデフォルトエンコーディングUTF-8に指定してから起動して下さい。Shift-JISのままですと、画面が文字化けしたりCalDAVレスポンスのContent-Lengthが短く計算されたりします。

Apache Directoryの起動

> bw.bat -quickstart dirstart

JBossの起動

> set JAVA_OPTS=-Dfile.encoding=UTF8
> startjboss.bat

JBoss起動遅い。メモリーもやたら食いますね、最低512Mくらいはヒープを割り当てないとだめっぽい。デフォルトでは使わない機能も全部デプロイされているので、実際に動かすときは使わないコンテキストは削った方が良さそう。

Tomcatの起動

> set JAVA_OPTS=-Dfile.encoding=UTF8
> bw.bat -quickstart tomcatstart

以上、起動が終わったら以下のURLにアクセスして下さい。

http://localhost:8080/ucal/

ログイン画面が表示されます。

あらかじめApache Directoryには以下のようなユーザが登録されています。

  • caladm/bedework
  • testuser01/bedework
  • testuser02/bedework

ログインすると以下のような週表示のカレンダーが表示されます。

次に、CalDAVの機能を確認するためにSunbirdとつなげてみます。
BedeworkのCalDAVのURLは以下の通りです。

http://<ホスト名>:8080/ucaldav/user/<ユーザID>/calendar

Sunbirdの[ファイル]→[新しいカレンダー]→[ネットワークサーバーに保存する]→[CalDAV]と選択して上記のURLを指定します。
[完了]をクリックすると認証が聞かれます。認証は、基本認証ですのでユーザID/パスワードを入力してください。

ちゃんと表示されました。

また、Sunbirdでtestuser01のカレンダーに参加者testuser02を含めてイベントを追加した場合、testuser02でログインするとちゃんとイベントが追加されメッセージが受信されています。空き時間検索もちゃんと動いていました。

参加者を複数指定した場合のイベントの追加も体感ですがパフォーマンスは良くなっているようです。
ただ、JMSが必須になったことで必要なミドルウェアの条件が増えたのはマイナス要素です。infoScoop Calendarに実装する場合は、Tomcat+OpenJMSくらいで動くように構成したいところです。