NServiceBus は ESB ですか、それとも軽量 ESB ですか? それとも、耐久性/信頼性の高いメッセージングを備えた WCF に似ていますか? 私には、ESB というよりもメッセージング フレームワークのように見えます。
さまざまなESB製品と、それらができることとできないことを調べ始めたばかりなので、ポインタが必要です。
NServiceBus は ESB ですか、それとも軽量 ESB ですか? それとも、耐久性/信頼性の高いメッセージングを備えた WCF に似ていますか? 私には、ESB というよりもメッセージング フレームワークのように見えます。
さまざまなESB製品と、それらができることとできないことを調べ始めたばかりなので、ポインタが必要です。
いいえ、私は NServiceBus を ESB 製品とは考えていません。また、一般的な EAI ツールでもありません。
他のツールと比較すると、NServiceBus は JMS API (例: spring-jms) や AMQP に近いものです。これは、使いやすいプログラミング構文を使用して、メッセージ キューと対話し、アプリケーション内で一般的なメッセージング パターン (pub/sub、要求/応答、デッドレター、「saga」など) を実装するのに役立つフレームワークです。
EAI 業界で伝統的に知られている ESB 製品は、エンタープライズ環境での多くの異種アプリケーションの統合を容易にするプラットフォームです。さまざまな ESB 製品がさまざまな機能を提供しますが、それらはすべて、それらを便利にする共通の特定の機能を共有しています。主なものは、さまざまなオープンおよび独自のプロトコルとサービス (メッセージキューを含むが、WS などの他のものも含む) へのコネクタの幅広いコレクションです。 -*、sftp、SAP、Siebel、rdbms、xmpp、websockets/comet、corba、edi)、およびエンタープライズ統合パターンのすぐに使用できる実装の完全なセット (ブラック ブックに従って) があるため、変換、変換、ルーティング、優先順位付け、ビジネス ルール、ポリシーの適用などの複雑な統合ロジックを調整するために、それらを自分で再実装します。
NServiceBus は、統合作業の実行にリモートで関連する機能を提供しておらず、そのために設計されたこともありません。これは、アプリケーション内でメッセージング パターンを実装するために使用するものですが、EAI プロジェクトで取り上げるものではありません。
nServicebus は確かに ServiceBus だと思いますが、何十万ドルも費やすことなく「エンタープライズ」ServiceBus と呼べるかどうかはわかりません。真剣に、ESB が本当に必要かどうかを熟考する必要があります。それらのほとんどは豊かな富を約束しますが、多くのオーバーヘッドをもたらし、価値を実現することは非常に困難です. 私は大企業で WSO2 を使用しており、そこでは 3 つの ESB の 1 つでした。OPチームによって運営されている非常に企業的で、システムをセットアップして実行するために別のチームに対処しなければならなかったため、本当に苦痛でした. その他の問題には、メッセージ ルーティングやメッセージ変換などのいわゆる機能が含まれます。確かに製品はそれらのことを行うことができますが、開発環境から離れて、より多くの心配する必要があります。コードや構成がより多くの場所に広がり、うまくいかない可能性のあるより多くのことを管理する必要があります。これは、開発者にとって非常にアクセスしやすい nServiceBus について私が気に入っていることです。私が気に入っているもう 1 つの実装は、Azure ServiceBus です。明らかに、それはフル機能ではなく、おそらくあなたが探しているものではありませんが、私は開発者のアクセシビリティとセルフサービスの性質が大好きで、それらは私が見ている特徴です.
エンタープライズ サービス バスは、複合 SOA パターンです。Thomas Earl の本を調べると、ESB に含まれるパターンは次のとおりです。
私の知る限り、NServiceBus (限定的) はこれらのパターンの一部を適用します - 残り (例: ルールの集中化とポリシーの集中化) はユーザーによって実装されることが期待されます。この定義では、BizTalk も ESB です。
覚えておくべき重要なことは、NServiceBus や Biztalk などを使用しても SOA にはならないということです。実際、適切に使用しないと、ベンダーに縛られて、SOA の最初の原則であるベンダー中立性が破られてしまう可能性があります。
あなたの質問は少しオープンエンドです。ESB に必要な機能を概説してから、NSB がそれらをサポートしているかどうかを確認することをお勧めします。
アップデート
クリスの回答に応じて、回答を更新する必要があります。
Chris が主張するように、Bus と Broker という 2 つのカテゴリを作成するのは便利ですが、間違っていて役に立ちません。
サービス バスは、トランスポートとプラットフォームに依存しない、サービスとそのコンシューマー間の仲介された接続を提供します。この定義では、メッセージ ブローカ モデルを使用する製品もサービス バスとして使用できます。
エンタープライズサービス バスはこの接続を提供しますが、次のようなエンタープライズ グレードのメディエーションを追加することもできます。
したがって、ツールセットを選択する際には、まず必要な機能の種類を決定してから、ニーズに最も適した製品を選択する必要があると思います.