.NET用サービスバスNServiceBusのバージョン4.0が先日リリースされた。これまで主要なキュー機構であったMSMQに加えて,RabbitMQとActiveMQが新たにサポートされている。プロジェクトの設立者であるUdi Dahan氏によると,今回のリリースはこれまでで最大のものだという。改良点は次のようなものだ。
- RabbitMQまたはActiveMQを使用する場合,AMQPコンプライアンスに完全準拠。
- データベーステーブルをキューとして使用可能。すべてを中央データベースに格納したいと考える組織向けの機能だ。
- MSMQトランスポートのパフォーマンスが大幅に向上した。
- イベントを同期的に扱うためのインメモリ・バス。ドメイン・イベント・パターンを(同一トランザクション内で)実装する場合など利用可能だ。
- 新規および更新されたパフォーマンスとスループットのカウンタ。
- 組み込み版RavenDB (ドキュメントデータベース,内部ストレージとしてデフォルトで使用される)がバージョン2にアップグレードされた。
- NHibernateとトランスポート設定の構成を簡略化。
- ベーシックライセンスでマルチスレッドがサポートされるようになった。
新たに用意されたhands-on labs環境によって,NServiceBusをインストールせずにテストできるようになった。これはクラウド上のマシンに対して,プリインストールされたNServiceBusを使ってリモートアクセスすることで実現されている。4マシンを使用したNServiceBusソリューションを確認できるscale-out labも追加された。
これに合わせて,2つのツールのベータ版もリリースされている。いずれもVisual Studioに統合されるものだ。
- ServiceMatrix – メッセージ駆動のサービス指向ソリューション設計を,より高い抽象レベルで行うためのモデリングツール。システムの論理ビューを提供する。例えばメッセージが送信され,それらメッセージによってイベントが発生する場所として,サービスによって公開されるコントラクトを表現する。
- ServiceInsight - キューやプロセスを流れるメッセージを視覚化して管理するデバッグツール。非同期システムでは,これをツールなしで行うのは大変な作業だ。
NServiceBusの基本はキューを通じて配信されるメッセージだ。ビジネスイベントを発行するサービスと,それを購読する他のサービスで構成されるパブリッシュ/サブスクライブパターン,あるいはキューを基本としたトランスポート機構など,サービス指向/イベント駆動アーキテクチャを採用したシステムの構築において,NServiceBusはビルドブロックの役割を果たす。
NServiceBusはオープンソース製品として,商用ライセンスおよびReciprocal Public License 1.5 (RPL-1.5)の下で提供される。
競合製品と目されているのはMassTransitで,こちらはApache 2.0ライセンスを採用している。