Service Oriented Architecture Principlesサイトでは、SOA ではサービス構成が重要であると述べています。しかし、Service Loose Coupling も同様に重要です。
これは、「オーケストレーション層」だけがシステム内のサービスの呼び出しを許可されているということですか?
私が SOA を理解しているように、「オーケストレーション層」はすべてのサービスを 1 つのソフトウェア アプリケーションに「接着」します。それをFig.AとFig.Bに描いてみました。
2 つの違いは、図 A ではアプリケーションがサービスで構成され、すべてのロジックが「オーケストレーション レイヤー」で実行されることです (サービスへのすべての呼び出しは「オーケストレーション レイヤー」からのみ実行されます)。図 B では、アプリケーションはサービスから構成されていますが、1 つのサービスが別のサービスを呼び出します。
図 B のアーキテクチャは、SOA の「サービスの疎結合」原則に違反していますか? サービスはSOAで別のサービスを呼び出すことができますか? さらに一般的に言えば、サービスの疎結合、抽象化、再利用性、自律性などの点で、図 A のアーキテクチャは図 B のアーキテクチャよりも優れていると考えられますか?
私の推測では、A アーキテクチャははるかに普遍的ですが、「オーケストレーション レイヤー」と呼び出されたすべてのサービスとの間で不要なデータ転送が追加される可能性があります。