【问题标题】:WCF Services Integration (ESB?)WCF 服务集成(ESB?)
【发布时间】:2014-05-22 08:41:23
【问题描述】:

我目前正在做一个小项目来学习.NET中的Web服务,我的问题如下。

我有一个“处理”转账的银行网络服务,还有一个报价服务,我想做的是让银行服务在发生一些转账时通知我的报价服务。一种解决方案是直接调用 Offer Service,但这并不是最好的解决方案。我考虑过 UDDI,但我认为这工作量太大。据我了解,这里可以使用 ESB,但坦率地说,我不知道如何使用它。我的意思是如何在没有直接调用的情况下从银行服务中调用优惠服务。

也许 NServiceBus 可以在这里使用,但同样不知道如何让它与 WCF 一起工作。 有什么想法吗?

编辑: 好吧,说得更清楚一点,我想知道,我如何使用 ESB 或其他框架/服务来解耦 WebServices,这样一个就不会直接调用另一个。

【问题讨论】:

  • 我觉得这个问题太笼统了。甚至标题也没有说明什么。我会说它需要一些大量的重新措辞才能适合作为一个实际问题,然后你会看到你所问的问题可能已经讨论过很多次了,所以它可能是重复的。
  • 对此我倾向于不同意@oleksii - 您在问题中描述要求的方式以及随后的评论使我认为使用消息传递是最好的方法。这是基于这样的假设,即银行服务不需要 Offer 服务的响应来满足调用者的请求,并且从业务能力的角度来看,这些服务有足够的差异,因此需要将它们作为单独的关注点进行管理。

标签: c# wcf esb


【解决方案1】:

一种解决方案是直接调用 Offer Service,但这并不是最好的解决方案。

为什么?这是一个很好的解决方案。许多系统都是这样工作的。我不确定你为什么认为消息传递会神奇地解决这个问题。事实上,消息传递只是通信的另一种类型

您应该使用相同的通信技术将一项服务调用到另一项服务中。这降低了复杂性。当您使用 Bank WebService、Offer Service 或两者时,需要学习的东西更少,出错的地方更少,更重要的是相同的通信 API。

您可能还需要使用事务或分布式事务。本地事务更容易实现,是保护操作的首选方式。`

【讨论】:

  • 我知道许多系统都是这样工作的,我只是认为进一步将它们解耦是个好主意。另外,我想这样做是为了学习新事物,因为我真的很感兴趣如何在这个简单的示例中使用 ESB 进行集成。消息传递也是间接的,您发送事件通知,然后由某个指定的处理程序完成工作,银行服务不需要知道向谁发送通知。
  • @user1418979 您可能想在帖子中提及解耦服务的动机,这样会更清楚。如果系统变得更复杂,我认为这是一个好方法。
  • @henginy 我认为“解耦服务的动机”的答案已经在 OP 的问题中,他/她说:“我的意思是如何在没有直接调用的情况下从银行服务调用报价服务”。据此,我们大概可以假设,从业务能力的角度来看,这些服务有很大的不同,可以保证一定程度的解耦。
  • @TomRedfern 我认为这个答案似乎错过了这个动机,即使它可以被推断/假设。 OP 已经需要用评论来澄清它,我建议将该信息复制到问题中;)
猜你喜欢
  • 2014-09-10
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
相关资源
最近更新 更多