31

エンタープライズ サービス バス (ESB) の使用法と利点に関する情報はどこにありますか?

以下に関する情報を探しています。

  1. 問題の種類とESBが解決に役立つ
  2. ESB の代替案と、それらを選択する際のトレードオフ
  3. ESB 互換システムを構築するために開発者として必要なこと

ウィキペディアやベンダーのオンライン マーケティング パンフレットよりも詳細な情報を探しています。理想的には、いくつかのサンプル コードが、ESB の利用に関係するものを明確にするのに役立ちます。.NET または Java の観点からの情報が最も役立ちます。

ありがとう。

4

11 に答える 11

22

Muleの作成者によって書かれたESB にするか、ESB にしないかをお勧めします。

于 2010-01-07T19:57:22.807 に答える
22

ESB は、エンタープライズ統合パターンを実装するための優れた方法です。

ESB が解決に役立つ問題の種類

  • ActiveMQ などの単一のプロトコル (メッセージング システムへの FTP、電子メール、SOAP、XMPP など) に正規化したいプロトコルが多数あります。これにより、サービスの実装をプロトコルから切り離すことができます。
  • メッセージをリッスンし、メッセージを処理し、メッセージ (メッセージ エンドポイント、チャネル アダプターなど) を生成できるように、サービスをこのアーキテクチャにフックする一貫した方法が必要です。
  • これらのさまざまなコンポーネント (ServiceMix、Mule など) をデプロイする管理されたコンテナが必要になる場合があります。
  • さまざまなプロトコルに多数の事前構築済みコンポーネントとアダプターが必要になる場合があります (たとえば、ServiceMix、Mule、および Camel には多数の事前構築済みコンポーネントがあります)。
  • 実行時間の長いワークフローが必要になる場合があります。ビジネス プロセス管理は、多くの場合、ESB と共に提供されるものです (Apache ODE は、多くのオープン ソース ESB にプラグインされます)。

ESB の代替手段

代替案は、解決しようとしている問題によって異なります。

  • 分散サービスを提供するために、アプリケーション サーバーを使用して、ポイント ツー ポイントの RPC プロトコル (RMI を介した EJB や HTTP を介した Web サービスなど) を介してサービスを公開することがよくあります。したがって、メッセージを「バス」に置くのではなく、クライアントは直接サーバーを呼び出します。
  • 特定のプロトコルに応答するには、そのプロトコルに応答するクライアントを構築するだけです。たとえば、JavaMail を使用して電子メールをリッスンするアプリケーションや、Smack を使用して XMPP をリッスンするアプリケーションを作成します。問題が 1 つまたは 2 つのプロトコルに限定されている場合、完全な ESB を導入する価値はないかもしれません。

ESB 互換システムを構築するために開発者として必要なこと

これは、選択する ESB によって異なりますが、優れた ESB のほとんどは、あらゆる種類のプロトコルやホスト POJO を呼び出すように設計されているため、ESB 互換システムを構築するために必要なことはあまりありません。コードを非同期にしてみる価値はあります。

たとえば、Apache Camel の構成はおそらく最も簡潔です。ここにチュートリアルがあります。

于 2010-01-07T20:07:50.493 に答える
7

3 つの主な利点:

  • バスは、エンドポイントが互いに直接通信することなく相互に接続する方法を提供します。エンドポイントは標準の通信インターフェースであるバスに準拠するだけでよいため、エンドポイントの通信が簡素化されます。(これは、ESB だけでなく、すべてのテクニカル バスに当てはまります)
  • ESB は、いくつかの重要なエンドポイント メトリック (頻度、可用性、およびパフォーマンス) を取得するための単一の場所を提供します。
  • ESB は、複数の通信インターフェイスを提供する傾向があります。ただし、開発者は、バスからデータを取得および受信するのに最も簡単なものを選択するだけで済みます。

ただし、それらがあなたの状況にビジネス価値をもたらすことを確認してください。ESB を使用すると、企業がさらに複雑になります。理想的には、いくつかのアプリケーションに基づいてこれを選択するのではなく、組織全体に基づいて選択する必要があります。組織には実稼働 ESB クラスターが1 つだけ存在する必要があります。

代替案:

  • 特に通信プロトコルが同じ場合は、互いに直接接続するだけです。これは単純なアプリケーション クラスタに適しており、深く考える必要はありません。ただし、アプリケーションの数が増えると、相互接続を維持することが難しくなります。
  • もう 1 つの選択肢は、MQ の実装です。これにより、複雑な相互接続を行わずにデータをプッシュする方法が提供されますが、1 つの通信チャネルのみを使用する必要があります。幸いなことに、Java には JMS 標準があります。

実用性:

可能な代替案を述べました。最初はお粗末に見えるかもしれませんが、そのように始めることができないと言っているわけではありません。私は個人的に、ESB を経由せずに直接リモートと対話することを書いて、統合の問題をあまり気にせずに動作することを確認しています。

ESB を持っていない場合は、開発用に Mule を、テストおよび実動用に WebSphere ESB を試すことをお勧めします。私は、標準に準拠していると思われる 2 つの製品を使用する傾向があり、ベンダーを正直に保ち、開発者が不注意なベンダー ロックインを防止する標準に準拠していることを確認します。

最後に、次の質問に答えてください。他の複雑さを単純化するために少し複雑さを追加する時間は、長期的に見ればコストに見合う価値がありますか?

于 2011-01-29T10:06:28.960 に答える
6

すでに言及されているサイトに加えて。「絶対に必要な場合を除き、ESB を使用しないでください」に関するこの記事を読む必要があります。これは、利用可能な最も人気のあるオープン ソース ESB の 1 つである MuleSource の CTO によって作成されました。あなたの質問への正確な答えではなく、「ESB が必要ですか」と自問自答することです。

于 2010-01-07T20:01:50.383 に答える
3

ESBに関して、かなり概念指向でベンダーにとらわれない (ほとんどの部分で)適切な 3 部構成のシリーズが IBM で公開されています。私は、IBM のサイトをざっと見て回って、ESB に関する多くの優れた情報を見つけました。BizTalk サイトには、適切な情報やビデオなどもあります。

于 2010-01-07T19:51:14.150 に答える
2

このHanselminutes ポッドキャストをチェックしてください。サービス バスを実装する前に自問すべきいくつかの質問に答えます。

于 2010-01-07T23:51:31.203 に答える
2

エンタープライズ サービス バス (ESB) は、より複雑なアーキテクチャに基本的なサービスを提供するミドルウェアのソフトウェア アーキテクチャです。たとえば、ESB には、サービス指向アーキテクチャ (SOA) の実装に必要な機能が組み込まれています。一般的な意味で、ESB は、アプリケーションやサービス (特にレガシー バージョン) へのアクセスを管理し、Web またはフォーム ベースのクライアント側を介してエンド ユーザーに単一のシンプルで一貫したインターフェイスを提供するメカニズムと考えることができます。フロントエンド。

本質的に、ESB は、分散型異種バックエンド サービスとアプリケーション、および分散型異種フロントエンド ユーザーと情報消費者に対して、ミドルウェアが実際に行うべきことを行います。つまり、複雑さを隠し、アクセスを簡素化し、開発者が一般的で標準的な形式のクエリ、アクセス、およびアクセスを使用できるようにします。インタラクション、バックグラウンドでの複雑な詳細の処理。ESB の魅力、そしておそらく将来の成功の鍵は、利用可能なテクノロジーに左右されるのではなく、ビジネス要件に基づいて漸進的なサービスとアプリケーションの統合をサポートする能力にあります。

http://searchsoa.techtarget.com/definition/enterprise-service-bus

WSO2エンタープライズ サービス バス(製品)

WSO2 Enterprise Service Bus (ESB) 4.7.0 ドキュメント! WSO2 ESB は、Apache Software License v2.0 に基づいて配布される高速で軽量な 100% オープン ソースの使いやすい ESB です。WSO2 ESB を使用すると、システム管理者と開発者は、メッセージ ルーティング、メディエーション、変換、ロギング、タスク スケジューリング、フェイルオーバー、負荷分散などを簡単に構成できます。最も一般的に使用されるエンタープライズ統合パターン (EIP) をサポートし、トランスポート スイッチング、イベンティング、ルール ベースのメディエーション、および高度な統合要件に対する優先度ベースのメディエーションを有効にします。ESB ランタイムは、Apache Synapse メディエーション エンジンに基づいて、完全に非同期、ノンブロッキング、およびストリーミングになるように設計されています。

WSO2 ESB は、コンポーネント化によって SOA にシームレスなモジュール性を提供する OSGi ベースのフレームワークである革新的な WSO2 Carbon プラットフォーム上で開発されています。これには、ESB にインストールできる多くの機能とオプションのコンポーネント (アドオン) が含まれており、環境に不要な機能を簡単に削除できるため、SOA の正確なニーズを満たすように WSO2 ESB を完全にカスタマイズおよび調整できます。

アーキテクチャ 企業のアプリケーション インフラストラクチャは本質的に複雑で、セマンティクスがまったく異なる数百のアプリケーションで構成されています。これらのアプリケーションには、カスタム ビルドのものもあれば、サード パーティから取得したものもあり、両方を組み合わせてさまざまなシステム環境で動作するものもあります。

これらの異種アプリケーション間の統合は、企業にとって不可欠です。異なるサービスは、異なるデータ形式と通信プロトコルを使用している場合があります。サービスの物理的な場所は任意に変更できます。これらの制約はすべて、アプリケーションが依然として緊密に結合されていることを意味します。ESB を使用して、さまざまなサービスとサービス コンシューマー間のこれらの結合を緩めることができます。

WSO2 ESB は、本格的なエンタープライズ対応の ESB です。これは、Apache Axis2 プロジェクトを使用して構築された Apache Synapse プロジェクトに基づいて構築されています。すべてのコンポーネントは OSGi バンドルとして構築されます。

于 2013-11-05T06:39:23.930 に答える
1

私のプレゼンテーション「Spoiled for Choice - How to choose the right ESB」をご覧ください。

ESB、統合スイート、または統合フレームワーク (Apache Camel など) をいつ使用するかを説明します。また、オープン ソースとプロプライエタリな ESB の違いについても説明します。

于 2013-04-18T01:22:14.737 に答える
1

ESB を使用する理由はありません。やらないでください。不必要な複雑さ。直接行くことができるのに、なぜ仲介者を経由するのですか?ESB 関係者は、ポイント ツー ポイントは良くないが、ESB との間のポイント ツー ポイントは良いと言うでしょう。

于 2015-03-20T18:38:45.423 に答える
0

自問する必要がある最初の質問は、なぜ ESB が必要なのかということです。

ESB は通常、Event SOA 分散アーキテクチャーで使用されます。これは、最近流行語になっているようです。ESB に飛び込む前に、システムの分散に関する Martin の Fowler First Law を思い出してください。

http://martinfowler.com/bliki/FirstLaw.html

「分散オブジェクト設計の第一法則: オブジェクトを配布しないでください (EAA の P より)。

関連する章はオンラインで入手できます。」

新しいシステムを構築する場合、最も重要な側面は、それが将来にわたって保証されていることです。つまり、簡単なスケーラビリティと保守性を意味します。ネットワーク化された環境に分散された静的に定義されたコントラクトを使用して、緩いサービスの概念に基づいてシステムを構築する場合、インターフェイスがまだ存在するため、その特定のサービスに必要なアーキテクチャを「隠す」ことができます。

ESB は非同期メッセージング システムと密接に関連しているため、そのような実装に飛び込む前に、アーキテクチャが同種である必要はないことを知っておいてください。つまり、すべてのサービスを同じ方法で実装する必要があります。システムを最初から配布する場合は、事前に配布する必要はなく、スケーリングが必要な場合にのみ配布する必要があります。ただし、確認する必要があるのは、サービスのクライアントの変更を意味する契約を破ることなく、必要に応じてサービスを簡単に配布できることです。

ESB の利点については、SOA と同じですが、ESB は非同期メッセージ (イベント) 操作のコンテキストを追加します。

于 2013-03-29T00:39:05.740 に答える