BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Laharsub - .NET メッセージサーバ

Laharsub - .NET メッセージサーバ

原文(投稿日:2010/10/26)へのリンク

Laharsub はチャット,オンラインでの共同作業,ニュースや株式取引情報の配信などのリアルタイム Web アプリケーションを対象とした,オープンソースの .NET 用 publish-subscribe (出版-購読) 型メッセージサーバだ。

Laharsub はフロントエンド = クライアント,中間層 = Web サービス,そしてバックエンド = publish-subscribe 機能とストレージ能力を持つシステム,という3層アーキテクチャで構築された publish-subscribe 型のメッセージサーバである。クライアントはブラウザを前提としているが,HTTP 要求を発行できるものならば何でもよい。中間層は,クライアントと双方向のメッセージ配信を行う WCF HTTP サービスである。そして,実際にメッセージに関連するロジックはバックエンドに実装される。

クライアントはトピック (Topic) を生成し,RESTful な API を通じてそれを送信する。他のクライアントは HTTP ロングポーリングを使用してトピックを購読 (subscribe) する。1つの要求で複数のトピックを購読することが可能だ。 Laharsub は jQuery,Silverlight,.NET 4.0 で作成されたクライアントに対して,フレーミングと多重化,ロングポーリング管理の機能を提供する。プロジェクトのコーディネータである Tomasz Janczuk 氏によれば,将来的には WebSocket を使用する予定である。

Web サービスはステートレスであるためスケールアウト性がよい,と Janczuk 氏は言う。Laharsub ではインメモリで動作するバックエンドが提供されている。これは数千のクライアントに対してスケールアウトするが,単一ノードという制限がある。よりスケール性を求める向きには "publish-subscribe 機能,メッセージストレージを提供し,Web ファームでの複数のノードにスケールアウトするカスタムバックエンド" というオプションがある。 Web サービスは Windows サービスプロセスあるいはコンソールアプリケーションとして実行される。

トピック購読は次のように行う。

GET http://laharsrv/ps/sql/subscriptions/volatile?subs[0][topicid]=14&subs[0][from]=1 HTTP/1.1
Host: laharsrv

対する応答は次のようなものだ。

HTTP/1.1 200 OK
Content-Length: 406
Content-Type: multipart/mixed; boundary=1d69db84.154e.47f7.be93.cc8b65b6efd0
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 18 May 2010 23:14:24 GMT

--1d69db84.154e.47f7.be93.cc8b65b6efd0
Content-Type: text/plain; charset=UTF-8
Content-Description: 14/929

Hello, world!

プロジェクトは CodePlex にホストされていて,新 BSD ライセンス (BSD) のもとに提供される。サーバに対するいくつかの負荷テストとパフォーマンス計測の結果,関連する説明が こちら のページで公開されている。将来的な計画 には,Window Azure や Amazon EC2 上のサーバへの配信,複数マシンへのスケールアウト機能なども含まれる。

この記事に星をつける

おすすめ度
スタイル

BT