我们的 SOA WCF 系统中有一个数据访问服务。该服务负责对“系统范围”的数据库表执行 CRUD(创建、更新、删除)操作,同时也是查询数据的来源。系统中的任何其他服务想要访问 DAS 控制下的表都必须到 DAS 获取或修改它。我们使用实体框架并为此 DAS 构建了我们自己的 POCO 状态跟踪系统。
我们的数据库中有其他表属于单个服务,并且存储数据仅供自己使用,即当它们崩溃和恢复或记录业务信息时它们可以访问的状态信息。我们有一条规则,任何一张表都不能被多个服务访问:因此多个服务所需的数据最终会存储在 DAS 中。
事实是我从来没有真正理解为什么数据访问服务是一个好主意,而不是直接访问表。似乎要慢一些,我们的 DAS 不是事务性的,因为它无法发回 POCO 图以进行数据库更新(一次只有一个 POCOS),而且我们还遇到问题,DAS 实际上是另一个需要数据的服务的客户端从它...循环依赖。
为什么要打扰DAS?对于 SOA,为什么 DAS 如此重要?我在这里想念什么?单点控制?
并非所有表都是 DAS 的一部分并且某些服务具有自己的“私有”表,这也是 SOA 设计缺陷吗?
欢迎对此进行任何讨论。