我不了解SOA(面向服务的体系 struct )和数据库.虽然我被SOA概念(将可重用的业务逻辑封装到服务中)所吸引,但我不知道如果封装在服务中的数据表被其他服务/系统需要,它应该如何工作-或者在这个场景中SOA适合at all吗?
更具体地说,假设我有两项服务:
-
CustomerService
:包含myCustomers
数据库表和相关的业务逻辑. -
OrderService
:包含我的Orders
表和逻辑.
现在,如果我需要用一条SQL语句来处理Customers
和Orders
个表,该怎么办呢?如果表包含数百万个条目,如果我必须使用SOAP/XML通过网络发送数据,则会导致不可接受的性能.那么如何进行JOIN
米呢?
我做了一些调查,发现了一些建议的解决方案:
- Use replication在需要的地方制作所需数据的本地副本.但是没有封装,那么使用SOA有什么意义呢?on StackOverflow讨论了这个问题,但是没有明确的共识.
- 设置一个封装所有数据库数据的Master Data Service.我猜它会变得非常庞大(每个存储过程基本上只有一个API调用),并且需要随时更新.在我看来,这似乎与enterprise data bus概念有关.
如果您对此有任何意见,请让我知道.