直接推送服务或业务逻辑处理

时间:2013-03-12 17:34:20

标签: c# service

更新

基本上,然后让服务器A的服务直接写入数据库或数据表。让服务为业务逻辑中的一系列Properties分配值。这样所有的计算和数据访问都将直接在服务器B上完成。

可能不太清楚的事情,服务器A是使用该服务的客户端。


所以我有一个独特的窘境,那就是处理这个特定问题的标准方法。我目前面临使用服务内部逻辑的选项。场景:

  • 两台服务器
  • 服务器A:将请求推送到服务器B.
  • 服务器B:获取这些请求和变量并实现业务逻辑。
  • 服务器B:无论如何都会创建关系数据访问,因此工作量增加一倍。

困境是我不确定标准最佳方式来处理这个问题。我的意思是,将 Server A Datamap 直接导入数据库会更好吗?或者将服务器A存储到属性然后让内部逻辑处理它是否更可行?

我问的原因显然是解决方案会导致快速发展,但将来会遇到问题或者表现不佳。

如:

  • 服务器B:将持续填写数据表
  • 服务器B:此时的所有持久性都来自它自己从数据库中检索数据。
  • 随着项目的发展,可能会很难重构。

这是我最初的担忧,所以我倾向于选择二。但正如我所说,我不确定我的心态是否符合规范或标准。

避免将此视为辩论;

  

选项一的缺点是否会随着复杂性的增长而影响任何项目的流动性?选项二的实施是否更可行,因为我可以直接实现对数据访问层的更好的通用访问?

感谢您的帮助,希望我明确表达自己的意义。如果没有,请发表评论,以便我可以进行相应的编辑。

1 个答案:

答案 0 :(得分:0)

在某种程度上“取决于”。从特定的功能角度来看,无论工作是否正确。

您可能有许多非功能性或设计要求可能会限制或指导特定实施。例如,如果您的设计应该是面向服务(SOA),那么每个服务器都应该是自治的。这意味着他们不应该共享一个数据库(他们甚至不应该共享一个模式)。在这种情况下,消息导向通常是一种很好的模式。您可能希望查看消费者/生产者模式和面向消息的中间件(如队列或服务总线)。在这种情况下,服务器A会将消息(命令)推送到将处理它的服务器B.您可以使用请求/回复模式将“回复”发送回服务器A.或者,服务器B可能只是将另一条消息(事件)发送回A以告诉它已完成工作。

更新

服务器B使用的“数据”将完全从消息中的B发送给它。