同時に数十万クライアントがアクセスし、しかもリアルタイムに処理できるシステムを構築するには、高性能サーバーが数多く必要になる。これが今までの常識だった。これを根底から覆すソフトウエアが「Node.js」だ。従来型のWebアプリケーションサーバーと異なるアーキテクチャーを採用しており、既存のサーバーに取って代わる可能性を秘めている。

 サイバーエージェントのソーシャルゲーム「ピグライフ」をご存知だろうか。仮想空間上でアバターを操作し、野菜を育てたり料理を作ったりするソーシャルゲームだ。2011年6月にサービスを開始し、会員数は既に300万人を超えた。そのためピーク時は、同社のシステムに約20万クライアントが同時にアクセスするという。

 実はこのシステムを支えているのは、わずか20台のPCサーバーだ。単純計算で、1台当たり1万クライアントからのアクセスを同時に処理していることになる(図1)。これを可能にしているのが、「Node.js」というオープンソースのソフトウエアだ。

図1●サイバーエージェントのソーシャルゲーム「ピグライフ」の概要
同時20万アクセスを20台の「Node.js」サーバーで処理する。ユーザーによるアバターの移動などFlashアプリケーションの操作情報をNode.jsで受け付け、ほかのユーザーのPCにリアルタイムで送信する
図1●サイバーエージェントのソーシャルゲーム「ピグライフ」の概要。同時20万アクセスを20台の「Node.js」サーバーで処理する。ユーザーによるアバターの移動などFlashアプリケーションの操作情報をNode.jsで受け付け、ほかのユーザーのPCにリアルタイムで送信する。
[画像のクリックで拡大表示]

 ピグライフのようなソーシャルゲームは、サービスの性質上、通信頻度が高い。ユーザーがFlashアプリケーションを使って「野菜の種を植える」「畑を耕す」といった操作をするたびに、Flashアプリケーションがサーバーにデータを送信するからだ。通信が遅延すると、ゲームの操作感を損ない、利用者数に影響しかねない。Node.jsは、大量のアクセス要求があっても、高速な処理を実現するカギとなっている。

 このほかにもNode.jsは、様々なシステムで採用され始めている。例えば、スマートフォンやネット関連の開発を手掛けるカヤックは、スマートフォン用アプリのバックエンドシステムとしてNode.jsを採用した。企業間オークションビジネスを手掛けるオークネットは、オークションシステムにNode.jsを取り入れた。

 利用を促進するサービスも次々と登場している。米ヤフーや米ジョイエント、国内ではファーストサーバなどが相次いでNode.jsのPaaS(プラットフォーム・アズ・ア・サービス)を開始している。2011年9月には開発者向けイベント「東京Node学園2011」が開催され、約250人の開発者が集まった(写真)。

写真●開発者向けイベント「東京Node学園2011」の様子
Node.jsの最新動向やシステム構築事例などが発表された
写真●開発者向けイベント「東京Node学園2011」の様子
[画像のクリックで拡大表示]

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