サービスバスとは何ですか、いつ必要ですか?


101

NServiceBusについての話を聞いたことがありますが、それが何であるのか本当に理解していません。彼らは「.netの最も人気のあるオープンソースサービスバス」であると主張しています。

そう; 「サービスバス」とは何ですか、いつ必要ですか?


私は本当にパーティーに遅れます、それはそうではないので、私はこれを回答として投稿しませんが、要するに、なぜあなたがそれを必要とするのかわからない場合、あなたはそうしない可能性があります...アプリケーションの接続や、ビジネスに一元化されたAPIを提供することについては、おそらくない問題です。
戦争

9
@Wardy私はあなたの発言に同意しません。あなたが何かを理解していない、またはそれが何であるかを知らないという事実は、それがあなたがそれについて知るのを助けないわけではないという意味ではありません
クリスティアン・トマ

それは無知の言い訳ではありませんでしたが、サービスバスが解決する問題にぶつかると、サービスバスはよく使われる用語であることを指摘します。それ。
戦争

これを編集として追加しますが、根本的に質問が変わります... NServiceBusは「特定のサービスプラットフォーム」として知られ、特定のネット(NServiceBus.comがリダイレクトする場所)にあります。
Dan Atkinson

すでに存在するものの名​​前や概念がわからない場合は、独自のものを書く可能性があります。したがって、(必要に応じて)それらを使用できるように、それらについて知っておくのは良いことです
noelicus

回答:


80

サービスバスはSOAのイーサネットと考えることができます。

何よりもまず、イーサネットのIPアドレスのようなものを識別する言語を導入します。この名前は本質的に物理的なものではありません。

次に、半接続通信をサポートするバスの場合のキュー、またはメタファー内のイーサネットカードなど、各ノードに物理的に関与するものがあります。

物理的なだけでなく、イーサネットのOSIスタックのような通信の「プロトコル」の部分があります。バスの場合、これはアプリケーションコードで使用されるクライアントライブラリです。

最終的に、サービスバスは、分散システムを構築するための次のより高いレベルの抽象化を提供するものと見なすことができます。また、クライアントとサーバー間の通信にも使用でき、耐久性のある一方向のメッセージングを提供したり、サーバーから通知をクライアントに送信したりできます。

具体的には、NServiceBusは非常に軽量で、キューイングテクノロジー(RabbitMQ、MSMQ、レギュラーSQLテーブル、Amazon SQS、Azureストレージキュー、Azure Service Busのいずれかを選択)を使用して問題がなければ、使いやすいことがわかります。


どうも!全体像が今わかったと思います!実際に..あなたがしている保持セッションのために今夜を用意し、私はそれを作ってあげるように、それは見ていないビットであるために、この質問をした
stiank81

12

エンタープライズサービスバスに関するWikipediaの記事をご覧ください。

サービスバスは、優れたサービス指向アーキテクチャを実装するための終わりのない探求における抽象化のさらに別の層として機能します。サービスバスは、メッセージング、ルーティング、サービス協調などの優れたサービス指向アーキテクチャの背後に見られる重い作業の一部を処理できます。

なぜそのようなものが必要なのかわからない場合は、優れたサービス指向アーキテクチャーを構成するものについて読んでおくことをお勧めします。本当に私の目を開き、Webサービスだけを持っていることと真のサービス指向アーキテクチャーを持っていることの違いを証明した本は、トーマス・エルのサービス指向アーキテクチャー:概念、技術、そしてデザインでした


それを使用して、デスクトップクライアントアプリケーションとサーバー間の通信を行うことができますか?サーバーが社内にある場合、それはです。
stiank81 2010

あなたは出来る。また、異なるサービス、異なるサービスの異なるバージョンなど(サービスが異なるプロトコルを使用する状況を含む)間の通信にも使用できます。
Justin Niessner、2010

11

この用語は、ある意味でEAIの後継(流行語として)であるSOAとともに導入されました。

いつ必要ですか?それは良い質問です。それは多くの複雑さを伴います。

経験則では、それが原因よりも多くの問題を解決する場合があります。

異機種混在環境があり、(異なるテクノロジーを使用した)アプリケーションをビジネスプロセスに合わせたい場合に深刻になります。次に、オーケストレーションコレオグラフィーにBPELを使用すると便利です(ただし、これにより移行による問題が発生します)

編集:ウィキペディアにないものは練習です:ESBは、特別なコネクター、CorbaまたはJava Enterpriseで使用するための古いターミナルアプリケーションを使用して、相互運用性を意味するig適応できます。欠点は、SOAPを取り巻く100を超える「標準」が多大な労力なしに協力しないことです。

2つの大手保証会社が合併してから6か月以内にITシステムを相互接続する必要がある場合は、間違いなくそれが必要です。


したがって、サーバー側との「単純な」通信を使用するデスクトップアプリケーションでは、サービスバスを大きくする必要はありませんか?サーバーからプッシュモデルを実装するのに役立ちますか?それともこのシナリオで得るよりももっと苦痛でしょうか?
stiank81 2010

@ stiank81申し訳ありませんが、(エンタープライズ)サービスバスを読み、シナプスが発火しました。NServiceBusへのリンクを確認しましたが、それらは同じものをターゲットにしており、クライアントサーバーアプリではそのようなものは必要ありません。1つのビジネスプロセスに関与する複数のアプリケーションの概念を意味します。うまくいくとしたら?それが原因よりも多くの問題を解決する場合。
スタッカー2010

「それが原因よりも多くの問題を解決する場合」それを使用してください...大好きです。
noelicus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.