これらのWebサービス用語SOA、ESBで混乱しています。
誰か説明してください。
SOAは、大まかな方法で「サービス」を公開およびカプセル化するアーキテクチャアプローチです。技術的なメカニズムや実装については規定していません。 SOAは、システム間の境界/統合の相互作用に関連しています。したがって、システムAがSOAを使用してサービスを公開する場合、システムBからそれらのサービスと相互作用できます。
一方、ESBは、SOAの提供を支援する技術的な実装です。
SOA
はservice oriented architecture
です。 SOA services are decoupled
では、サービスタイプに関係なく相互に対話できます。特定のサービスはプラットフォームまたはプロトコル固有である可能性がありますが、SOA enableこのようなサービスは、データをやり取りして交換します。このデータは、基本的にESB
(Enterprise service bus
)を介して交換され、SOAアーキテクチャのバックボーンを形成します。
これをよりよく理解するのに役立つ具体的な例を挙げましょう。さまざまなサービス間でデータを転送する手段としてJMS servers
を使用し、XML/XSD
を使用することにより、ESBを実装する方法の1つです。したがって、さまざまなサービスがこれらのJMSサーバーを登録または接続し、XML形式を使用してデータを交換します。一般にSOAスイートには、サービスとXMLによって理解される形式との間でメッセージを変換するのに役立つ、いわゆるadapters
がバンドルされています。
たとえば、株式取引システムを考えてみましょう。証券取引所からのメッセージはFIX
プロトコルで届きます。 JSON
を期待するアプリケーションをビルドしている可能性があります。これらの両方のシステムを機能させるには、SOA-FIX AdapterがFIXメッセージをXMLに変換し、このxmlがESBを介してJSONアダプターに転送され、必要に応じてJSONに変換されますシステムエンドポイント。
最後に次の図を期待して、それは非常に明確になります。
SOA:-基本的にSOAでは、一方の側にプロデューサー/プロバイダーがあり、もう一方の側にコンシューマーがあり、2つの側が通信するブリッジ(ネットワーク)で分離されています。したがって、焦点は、2つのパーティがサービスを相互作用(生成/消費)する方法にあります
ESB:- ESBは、SOAの原則に従っていますが、ここでは直接のプロデューサーはありませんが、複数のアプリケーション/コンポーネント/システムが相互に通信/相互作用できるアーキテクチャパターンです。ここでHSoは、複数の異種アプリケーションが相互に作用してビジネス目標を達成する方法に焦点を当てています。
また、ESBは、サービスの開発に使用できるAPIを提供し、サービスを相互に確実に相互作用させます。技術的には、ESBはプロトコル変換、メッセージ形式の変換、ルーティング、ESBにリンクされているさまざまなサービスやアプリケーションからのメッセージの受け入れと配信を行うメッセージングブローカーです。
定義と違いは、次の質問で説明されています。