同時に数十万クライアントがアクセスし、しかもリアルタイムに処理できるシステムを構築するには、高性能サーバーが数多く必要になる。これが今までの常識だった。これを根底から覆すソフトウエアが「Node.js」だ。従来型のWebアプリケーションサーバーと異なるアーキテクチャーを採用しており、既存のサーバーに取って代わる可能性を秘めている。
サイバーエージェントのソーシャルゲーム「ピグライフ」をご存知だろうか。仮想空間上でアバターを操作し、野菜を育てたり料理を作ったりするソーシャルゲームだ。2011年6月にサービスを開始し、会員数は既に300万人を超えた。そのためピーク時は、同社のシステムに約20万クライアントが同時にアクセスするという。
実はこのシステムを支えているのは、わずか20台のPCサーバーだ。単純計算で、1台当たり1万クライアントからのアクセスを同時に処理していることになる(図1)。これを可能にしているのが、「Node.js」というオープンソースのソフトウエアだ。


ピグライフのようなソーシャルゲームは、サービスの性質上、通信頻度が高い。ユーザーがFlashアプリケーションを使って「野菜の種を植える」「畑を耕す」といった操作をするたびに、Flashアプリケーションがサーバーにデータを送信するからだ。通信が遅延すると、ゲームの操作感を損ない、利用者数に影響しかねない。Node.jsは、大量のアクセス要求があっても、高速な処理を実現するカギとなっている。
このほかにもNode.jsは、様々なシステムで採用され始めている。例えば、スマートフォンやネット関連の開発を手掛けるカヤックは、スマートフォン用アプリのバックエンドシステムとしてNode.jsを採用した。企業間オークションビジネスを手掛けるオークネットは、オークションシステムにNode.jsを取り入れた。
利用を促進するサービスも次々と登場している。米ヤフーや米ジョイエント、国内ではファーストサーバなどが相次いでNode.jsのPaaS(プラットフォーム・アズ・ア・サービス)を開始している。2011年9月には開発者向けイベント「東京Node学園2011」が開催され、約250人の開発者が集まった(写真)。

Node.jsが活気付いているのはなぜか。その理由は、これまでのWebアプリケーションサーバーとは全く異なる四つの特徴にある。(1)多くのアクセス要求を処理できること、(2)JavaScriptでアプリケーションを開発できること、(3)アドオンが充実していること、(4)様々な種類のサーバーとして動作すること、である。次回以降、これらの特徴を順に見ていこう。