面向服务的架构原则网站说服务组合是 SOA 中的一个重要内容。但是服务松散耦合也很重要。
这是否意味着“编排层”应该是唯一允许调用系统中服务的层?
据我了解 SOA,“编排层”将所有服务“粘合”到一个软件应用程序中。我试图在 Fig.A 和 Fig.B 上描述这一点。
两者的区别在于,在 Fig.A 中,应用程序是由服务组成的,所有的逻辑都在“编排层”中完成(所有对服务的调用都只在“编排层”中完成)。在图 B 中,应用程序由服务组成,但一个服务调用另一个服务。
图 B 中的架构是否违反了 SOA 的“服务松耦合”原则?SOA 中的服务可以调用另一个服务吗?更一般地说,在服务松散耦合、抽象、可重用性、自治等方面,图 A 上的架构能否被认为优于图 B 上的架构?
我的猜测是 A 架构更加通用,但它可以在“编排层”和所有被调用的服务之间添加一些不必要的数据传输。