これは基本的に、システムを設計するための概念的な方法です。ソフトウェア会社は、「ESB」ステッカーを貼り付けることでより多くを販売しようとし、管理者は、ESB が「より高いレベル」から見栄えがすることを好みます。
ESB は基本的に、データ モデルと構造定義管理が追加された MOM (メッセージ指向ミドルウェア) です。そのバス上のすべてのアプリケーションとアダプターに共通のデータ定義があります (共有 XSD を使用した XML の可能性があります)。接続するものはすべて、このデータ定義に準拠した情報を送信する必要があります。ESB は、この共通データ定義のロード、共有、およびバージョン管理をサポートしています。新しいコンポーネントを ESB に接続する場合、MOM に接続する場合よりもすぐに使用できる「互換性」が期待できます。そのバス上の各コンポーネントは概念的に「リソース」として扱われるため、送信者を受信者から分離するために導入された追加の抽象化があります。
例: 標準のメッセージ指向ミドルウェアでアプリケーション A をアプリケーション B に接続するとします。JMS を考えてみましょう。アプリケーション B で作業している同僚と話し、トピック、メッセージ タイプ、およびフィールドに同意して送信します (疑似コード): sendJms("TRADE.MSFT", {MapMessage trader="pete" price=101.4 vol=100})
サービス指向アーキテクチャで同じことを行う場合は、
- 追加のソフトウェアをインストールする
- 多くの新しい概念を学ぶ
- ESB の管理 GUI で新しい Java コンポーネントを定義する
- ESB によって制御されるいくつかのインターフェースを実装する
- sendJms( getDestination(), {MapMessage trader="pete" price=101.4 vol=100}) - 宛先が ESB から注入されることに注意してください
初めての時は少し辛いかもしれませんが、EJBに慣れるのと同じように慣れると思います;-)
MOM システムは「型なし」(動的構造) であるのに対し、ESB は「型付き」(静的構造) であると言えます。raw Messaging と ESB のトレードオフは、他の型なし/型付きの選択肢と似ています。
- REST と SOAP
- 検証されていない XML と XSD で検証された XML
- Groovy 対 Java
- インタープリター言語とコンパイル済み言語
小規模なプロジェクトの場合、機能をすばやくハッシュ化するのは良いことですが (例: Groovy コード)、大規模なプロジェクトの場合は、デバッガー (例: Java) を用意し、問題が発生したときに事前に警告を受け、人々がコミットする前に標準を用意することをお勧めします。事業。
したがって、検証されていない変更をチェックインしてシステムを壊す人が多すぎることにプロジェクトが苦しんでいる場合は、より多くの構造 (MOM ではなく ESB) に移行してください。プロジェクトが時間内に十分な作業を完了できないことに苦しんでいる場合は、よりシンプルで型指定のないソリューションを選択してください。両方の場合 - コンサルタントを取得します (冗談です ;-)