今月号(2006年4月号)の Software Design (技術評論社)でWeb2.0時代のWebアプリ特集が組まれています。その中で、サイボウズラボの竹迫さんが、Web2.0コラボレーションウェアの Zimbra について解説しています。興味のある内容であり大変参考になりました。
Zimbra Collaboration Suite は米国 Zimbra 社の提供する Ajax/Java ベースのエンタープライズ向けコラボレーションウェア(日本で云うところのグループウェア)であり、優れたユーザーインターフェースで Web2.0 時代のエンタープライズサービスとして注目されています。
このZimbra社についてはWeb2.0 BOOK でも Web2.0 近未来予測の章で簡単に取り上げていますが、僕も非常に注目しているサービスでありプロダクトです。
Software Design では Zimbra のテクノロジーアーキテクチャーを中心に解説されていますが、そのアーキテクチャはブログエンジン社の提供している企業向けイントラブログツールの BlogEngine とほぼ同じであり共感を覚えました。(図はDraft for Comment: Zimbra Architecture Overvireより抜粋)
Zimbra も BlogEngine も同じJavaソリューションなので、ある程度類似したコンポーネントアーキテクチャ設計となりますが、利用しているコンポーネントおよびアーキテクチャ設計は非常に近いものがあり、Zimbraのコンポーネントアーキテクチャはエンジニアリングベースのテクノロジーベンチャーだけあって、オープンソースソフトウェアをうまく組み合わせた先進的な良くできているアーキテクチャです。もちろん機能的にはブログとコラボレーションウェアは全く違うためにアプリケーションの設計は異なります。
BlogEngine/Zimbra共に採用しているコンポーネント
・Javaサーブレットコンテナ Tomcat
・アカウント管理 Open LDAP
・全文検索 Lucene <CJKAnalyzer (bi-gram)>相違するコンポーネント
・EJBコンテナ JBoss(ZimbraはEJB未使用)
・DBMS BlogEngineはPostgreSQL(ZimbraはMySQL)
・MTA BlogEngineはApache James(ZimbraはPostfix)
特に全文検索エンジンに Lucene を採用しているプロダクトはそれほどありません。BlogEngine の場合、英語のようなシングルバイトの検索とは異なり、日本語に対応するために、中国語、日本語、韓国語に対応したアナライザでである CJKAnalyzer を採用しています。CJKAnalyzer は bi-gram という手法を利用し文書を単語に分割します。(図はブログエンジンのアーキテクチャ)
また、BlogEngine ではブログへのメールエントリー機能をサポートしており、メールフォーマットに踏み込んだアプリケーションのためをによる MTA (Mail Transfer Agent)に Apache James を採用しています。
Zimbra、BlogEngine 双方ともJava プラットフォームのため、多くのOSに対応できます。
Zimbra Mac OS X対応していますが、BlogEngineもこれから考えなくては;-)
Software Designに加えてZimbraのサイトから以下のドキュメントを参考にさせていただきました。
■Draft for Comment: Zimbra Architecture Overvire
Technorati Tags: Zimbra