ESB (エンタープライズ サービス バス) は、エンタープライズ Java の世界で非常に人気がありますが、.NET の分野で同等のものはありますか?
3 に答える
NServiceBusがあります。
.NET の世界でさらにいくつかのサービス バス:
MassTransit - https://github.com/masstransit/
Rhino サービス バス - http://hibernatingrhinos.com/open-source/rhino-service-bus
自問する必要がある最初の質問は、なぜ ESB が必要なのかということです。
ESB は通常、Event SOA 分散アーキテクチャーで使用されます。これは、最近流行語になっているようです。ESB に飛び込む前に、システムの分散に関する Martin の Fowler First Law を思い出してください。
http://martinfowler.com/bliki/FirstLaw.html
「分散オブジェクト設計の第一法則: オブジェクトを配布しないでください (EAA の P より)」
新しいシステムを構築する場合、最も重要な側面は、それが将来にわたって保証されていることです。つまり、簡単なスケーラビリティと保守性を意味します。ネットワーク化された環境に分散された、静的に定義されたコントラクトを使用した緩いサービスの概念に基づいてシステムを構築する場合、インターフェイスがまだ存在するため、その特定のサービスに必要なアーキテクチャを「隠す」ことができます。
ESB は非同期メッセージング システムと密接に関連しているため、そのような実装に飛び込む前に、アーキテクチャが同種である必要はないことを知っておいてください。つまり、すべてのサービスを同じ方法で実装する必要があります。最初からシステムを配布します。事前にではなく、スケーリングが必要になったときにのみ配布する必要があります。ただし、確認する必要があるのは、サービスのクライアントの変更を意味する契約を破ることなく、必要が生じた場合にサービスを簡単に配布できることです。