【发布时间】:2015-01-17 12:47:28
【问题描述】:
SOA 服务与其他类型的服务(如应用程序或域服务)有什么区别?
【问题讨论】:
标签: service domain-driven-design soa ddd-service
SOA 服务与其他类型的服务(如应用程序或域服务)有什么区别?
【问题讨论】:
标签: service domain-driven-design soa ddd-service
简答
DDD 域服务 在域实体上运行。通常需要完成的工作跨越多个聚合根。
DDD 应用服务 推动工作流程。例如,如果您想对域实体做一些工作,应用程序服务将负责从数据存储中获取实体,调用域服务来完成工作,如果需要通过集成服务做一些工作,然后最后坚持更改。
【讨论】:
这是一个有趣的问题,因为 SOA 是一个宽泛而重载的术语。
如果我们将 SOA 理解为任何导致实现“服务”的机制的实现,那么即使是应用程序和域服务也将构成 SOA 服务的一部分。应用服务和领域服务甚至会属于微服务领域,尽管应用服务通常是通过某种集成机制浮出水面的。
我喜欢从“可达性”的角度来考虑这些事情。维基百科:
在图论中,可达性是指在图中从一个顶点到另一个顶点的能力
因此,这取决于您的代码的可访问性。理论上,一堆领域服务可以形成一个面向服务的架构。
唯一的区别在于您展示服务的方式。
【讨论】: