コラボレーション・エンジニアの考える日々

企業での情報共有とコミュニケーションについて、ITを中心に企業コラボレーションを考えていくブログです。

XPagesで作り直すと3倍のパフォーマンス向上になる

XPagesで作ったディスカッションDBと従来のディスカッションDBのパフォーマンス比較がdeveloperWorksに載っている。XPagesは、サーブレット実行環境の上で動作するのでサーバーコードの再インスタンス化が不必要だし、AJAXによる部分更新も実装されているので、アプリケーションのパフォーマンスは上がるだろうと思っていた。しかし、パフォーマンス比較テストする機会がなく、ただ頭の中で考えているだけだったが、今回、XPagesのパフォーマンスが証明された格好だ。


■同時アクセスユーザー数は2.5倍向上
以下のグラフを見てみると、まず、横軸の同時アクセスユーザー数が目に付く。レスポンスタイム3秒以下の条件下で、7.0のテンプレートは250ユーザーまでであるのに対して、XPagesは600ユーザーまでスケールしている。約2.5倍のパフォーマンス向上だ。500ユーザーから600ユーザーにかけて、CPU使用率はやや急激に上がっているが、これは単一DBにアクセスしているため、DBセマフォの関係でこうなっているようだ。メールサーバーの場合、1ユーザー1DBなので、単一サーバーで同時アクセスユーザー数としては、5,000ユーザー以上も可能だが、それとは違う。この点は、キャパシティプランニングをする上での注意点となるだろう。


■必要ネットワーク帯域は半分以下
さらに以下のグラフを見ると、同時200ユーザーでネットワーク帯域は、XPagesの方は7.0テンプレートより約44%の帯域で済んでいる。これは、GZIP圧縮による効果だ。


■ディスクI/Oには注意
以下の2つのグラフを見ると、Disk I/O per SecがXPagesの方が2倍多いし、Disk KB per Secも約3.4倍に上がっている。つまり、ストレージシステムとしては、7.0の時代より、より高い性能が求められるということだ。いいことばかりではないらしい。Dominoサーバーのパフォーマンスは、昔からDisk I/Oがボトルネックとなる特性を持っている。ただ、前述のグラフの500ユーザーから600ユーザーへのCPU使用率の上がり方をみると、サーバーパフォーマンス全体として、CPU使用率が先にボトルネックになる場合も出てきそうだ。





XPagesは、Web2.0アプリケーションの開発生産性を上げるだけでなく、サーバーパフォーマンスも上がることがこれでわかった。これは8.5.2でのXPagesパフォーマンス向上が効いている。今後、XPagesのパフォーマンス向上にはさらに取り組んでいくようなので、さらに期待していきたい。

マインドマップとノーツのコラボレーション

Haus Weilgut社のMindplanというマインドマップツールがある。僕は2009年のLotusphereに行った時、展示会場にあったものを見て知ったのだが、それ以来、何も調査していなかった。が、最近、触る機会があったので、紹介したい。ちょっとびっくりするツールだ。


Mindplanは、ノーツクライアントで使うマインドマップツールだ。ノーツのコンポジットアプリケーションのプラグインとして実装されていて、以下のようなインターフェースを提供する。



どうだろう?こんなインターフェースは今までのノーツでは見たことがない。僕はFreemindという無料のマインドマップツールを使っているが、それと同じく、ドラッグ&ドロップ操作だとか、ショートカットキーでどんどんノードを作っていくのが出来ている。動作スピードは僕の ThinkPad X201s では特に問題ない。さすがに、Freemindと比較すると劣る部分はあるのだが、決定的なのは、みんなでマインドマップを作成できる、という点だ。


Mindplanでマインドマップを作ると、それはノーツDBにデータが入る。前述のマインドマップの場合、以下のように文書が出来ている。ノード間の関係付けは、子文書になっているのがわかる。



つまり、元になるノーツDBをサーバー上に置いておけば、複数人でマインドマップを編集できる。ノーツDBで実装されている、と思えば、エージェント作って新規ノードが作成された場合にメール通知する、なんていうことも思いつくだろう。


マインドマップは個人には大分浸透してきた感があり、IBM社内でもFreemindの画面を開いている人をたまに見かけ、そのメリットが認識されてきていると思う。そうすると、これをグループで使うという発想に行くだろう。実際、ミーティングルームでもFreemindをプロジェクターで写している風景を見たことがある。マインドマップによるコラボレーションというツールは、もしかしたら今後、企業内で要望が増えていくのかもしれない。bubbl.usのようなオンラインツールもあり、SaaSでの提供もありうる。


データストアとしてはノーツDBを使って、ユーザーインターフェースは別のものを使うという発想は"あり"だと思う。僕も、前にブログ/SNSの仕組みをノーツDBで作っていたりしたし、製品標準としても、バージョン8.5からXPagesという機能が提供され、データはそのままに、最近のWebインターフェースを実装できる。Mindplanのようなものを自社内で内製するには厳しいかもしれないが、ベンダーソリューションとして提供されたり、OpenNTF.orgでフリーで利用できたりするので、そういったものを組み合わせて利用していくというのは、賢い選択かもしれない。


因みにこのMindplan、個人でローカルで使う分には無料で使える。一度試してみてはいかが?

こんなのあり?Inbox Zeroに効く有り得ない僕のメール処理方法

以下をご覧いただきたい。これは、僕の今の受信ボックスだ。



そう、件名、送信者を表示させていない。なんでこんなことになっているのか・・・?


僕のメールの処理方法は、inbox zeroだ。つまり、メールボックスを開くときは全てのメールを見て、GTD的に何らかの対応をして、フォルダーに移動させるか削除する。そうやって受信ボックスは常に綺麗にしておく。そうすると、頭がすっきりするし、なによりストレスを抱えることがない・・・・・・・・・・・・・・・というのを実践しようといつもしているのだけれど、これがなかなかうまくいかなかった。うまくやるためには、メールは到着した順にどんどん処理するのが一番なのだけれど、以下のような対応になっていた。

  • 重要な案件のメールを先に読む。
  • 対応が重そうなメールは先送りにしてしまう。
  • どうでもいいようなメールをついつい先に開けてしまう。
  • 対応が必要だけれど急ぎではないメールは、読んだあとフラグを付けて受信ボックスに残したまま

こうなると、いつまでも処理されないで受信ボックスに残るメールが出てきてしまう。もちろん、それは頭では分かっているのだが、やらなきゃやらなきゃと思っているうちに、押し寄せる仕事依頼の波に飲まれ、対応したのは1週間後・・・などということになる。


こうなってしまう原因は、メールを開ける前に件名や送信者が受信ボックス上に見えているからだ。件名が見えていると、ついつい優先順位付けをしてしまうし、開けたくないメールが出てきてしまう。First In First Out がどうしてもできなくなる。強い意思で・・・などと思っても絶対できない。ついつい安きに流れてしまう。何か、仕組みが必要だ・・・・。


そんな時、社内のLotus Connectionsのマイクロブログ(Twitterみたいな機能)上で、受信ボックスから件名を消しているとつぶやいている人がいた。「なにをバカな・・・」と思ったかどうだか知らないが他の人は何も反応していなかった。しかし、僕にとっては暗天の空から差す一筋の光に見えた。ということで、件名を消し、さらに僕は送信者も消した。


実際にやってみると、これが非常に調子いい。到着順にどんどんメールを開ける。件名が見えないから読んだメールはそのままにしておくと後から「これはなんだっけ?」となるので、必ずGTD的処理をして受信ボックスから消すようになる。意思の強さとは関係なく、この仕組みが僕をどんどんメール処理させてくれる。


Gmailでは最近Priority Inbox機能がリリースされたが、それよりはるか昔からノーツにはメールの優先順位付けを自動的にしてくれる仕組みがある。これは、一日に何百通もメールを受け取る人には有効だと思う。人によっては何千通という未読メールが溜まっている人もいるだろう。そういう人は、もう全てのメールを見ることは出来ない。少しでも重要なものを選んで読んで、あとは読まないで放っておくしかない。また、性格的に優先順位通りにメールを処理したい人にも必要だろう。そういう人は、なにも対応せずに受信ボックスに残すことが気持ち悪くて、すぐアクションを取れる。僕の妻がこのタイプだ。


この方法は、当然デメリットもある。スパムメールも開かなきゃいけないとか、「さっきメール送ったから見て!」と言われた時とか、今まで件名や送信者だけ見て削除していたののができなくなるとか。誰にでも勧められるものではない。しかし、僕の場合はよく効いている。時にはこんなドラスティックな改革が必要なのだ。ただ、スパムやウィルスは深刻なので、社内できちんと対応できていることが前提条件となる。使用するメールクライアントによっては、開くだけで感染するメールもあるので、ノーツのようにきちんと対応がされているメールクライアントを使うというのも条件だ。


因みに、この受信ボックスのカスタマイズは、デザイナークライアントは必要ない。受信ボックスを開いている状態にしておいて、上のメニューバーから [表示]→[ビューのカスタマイズ] を選択すると、以下のダイアログボックスが出てきて、ここで列を非表示にしたり、列の順番を入れ替えたりできる。



inbox zeroを実践したいがなかなかできない、そんな人は是非試してもらいたい。

Notes/Domino 8.5.2は、クラウド対応への布石

先月、Lotus Notes/DominoのSaaS版として、LotusLive Notesが発表・リリースされた。ブラウザーはもちろん、今使っているNotesクライアントから、クラウドにあるメールサーバーにアクセスできる。一方、オンプレミスでは、さらなるIT環境の最適化の流れから、サーバー集約の検討が進んでいる。


クラウド移行やサーバー集約で検討しなければならない最も大事なことの1つは、ネットワークだ。特にクラウドでは、極端な場合、サーバーが地球の反対側に行ってしまう。Notesクライアントの場合、クラサバシステムなので、Webよりもクライアントとサーバー間のやり取り(データ量という意味ではなく、プロトコルレベルのコマンドのやり取り)が多く発生する。これは、物理的にサーバーが遠くに行ってしまったり、ネットワーク帯域が狭い場合に、エンドツーエンドのレスポンスタイムに大きく影響してしまう。


Notes/Dominoの場合、これを回避するために、ローカル複製機能がある。メールやアプリそのものをローカルPC上に持ってきて、定期的にサーバー上と同期させるというものだ。それだけでなく、オフラインでも使えるようになるので、外出先やネットワークの繋がらない場所での会議で力を発揮する。


ところが、エンドユーザーがローカル複製を使うには、ある程度慣れが必要だ。慣れるまでは、情報システム部門は、エンドユーザー向け教育を計画・実施したり、ヘルプデスクへのQ&A増加を見込んて対応策を検討しなければならない。そうしたとしても、エンドユーザーがローカル複製を必ず使ってくれる保証はなく、サーバー集約やクラウド移行後に、パフォーマンスが遅くなったとクレームを沢山もらう可能性は否定できない。


これを解決すべく、Notes/Domino 8.5.2から「管理対象レプリカ」という機能が追加された。一言でいえば、「エンドユーザーに確実にメールをローカル複製で使ってもらえる機能」だ。エンドユーザーは、サーバーとかローカルとか意識すること無く、オンライン/オフライン関係なく、いつでもどこでもメールにアクセスできるようになる。ローカルアクセスなので、パフォーマンスも今よりぐんと上がる。


「確実にメールをローカル複製で使ってもらえる」とは、以下のような動作をするので、そう表現した。

  • クライアントにローカルレプリカが無ければ、自動的につくってくれる。(デスクトップポリシーで設定)
  • レプリケーターベージにメールDB複製のエントリーが追加されるが、これは削除不可能。エンドユーザーに間違って削除されることはない。
  • ローカルレプリカのファイルをOSレベルで削除しても、Notesクライアントの次回再起動時に自動的にまた作成される。エンドユーザーが間違って削除しても大丈夫。削除されている状態で、ローカルレプリカのアイコンをクリックすると、サーバー上のDBを開いてくれる。
  • メール受信は、ほぼリアルタイムで複製してくれる。僕がテストしている範囲でいうと、最大でも1分程度。これは、通常の複製ではなく、受信メールのみの複製。Notesクライアントがメール受信をポーリングしていて、新規メールを発見すると、取ってきてくれる動きをする。
  • メール送信は、リアルタイムで送信。
  • サーバー上のDBアイコンをクリックしても、ローカルDBが開く。今までローカル複製を使ってこなかったエンドユーザーには、メールDBアイコンがサーバー用とローカル用の2つが出来て、ついつい、いつもどおりにサーバー上のメールDBアイコンをクリックしがちだ。そうすると、サーバー集約、クラウド移行後は、パフォーマンスが遅くなったと言われる可能性がある。しかし、こういう動作をするので、確実にローカルレプリカを使ってもらえる。(因みに、ブックマークからサーバー上のアイコンをむりやり選択して開けば、サーバー上のDBが開く)

この機能は、クライアント側の機能なので、サーバーが8.5.2でなくても構わない。本日、8.5.2日本語版がリリースされているので、是非、インストールして試して欲しい。管理対象レプリカ機能は、クライアントのnotes.iniに以下のパラメータを入れることで、ポリシーを使わなくても機能してくれる。
CacheMail=7
ReplicateOnNewMail=1
OutgoingMailSendThreshold=1


Notes/Domino 8.5.2 と LotusLive Notesの発表、リリースが重なっているのは、偶然ではない。8.5.2はクラウドを志向している、そんなリリースなのだ。


P.S
昨日のLotus Technical Update Workshopでは、アンケートに、ブログ更新しないんですか?というコメントを頂戴した。忙しさにかまけて更新を怠っていたが、見てくれる人がいるのであれば、また更新していこう。