Blogot - 旅とF1と車と男の嗜み

旅とF1と車と男の嗜みをテーマとした後藤康成のブログ。

ZimbraとBlogEngineのアーキテクチャ

今月号(2006年4月号)の Software Design (技術評論社)Web2.0時代のWebアプリ特集が組まれています。その中で、サイボウズラボの竹迫さんが、Web2.0コラボレーションウェアの Zimbra について解説しています。興味のある内容であり大変参考になりました。

Zimbra Collaboration Suite は米国 Zimbra 社の提供する Ajax/Java ベースのエンタープライズ向けコラボレーションウェア(日本で云うところのグループウェア)であり、優れたユーザーインターフェースWeb2.0 時代のエンタープライズサービスとして注目されています。

Zimbrafrontend このZimbra社についてはWeb2.0 BOOK でも Web2.0 近未来予測の章で簡単に取り上げていますが、僕も非常に注目しているサービスでありプロダクトです。

Software Design では Zimbra のテクノロジーアーキテクチャーを中心に解説されていますが、そのアーキテクチャブログエンジン社の提供している企業向けイントラブログツールの BlogEngine とほぼ同じであり共感を覚えました。(図はDraft for Comment: Zimbra Architecture Overvireより抜粋)

Zimbraarchitecture 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)

Blogenginearchitecture_1 特に全文検索エンジン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: