Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF服务集成(ESB?)_C#_Wcf_Esb - Fatal编程技术网

C# WCF服务集成(ESB?)

C# WCF服务集成(ESB?),c#,wcf,esb,C#,Wcf,Esb,我目前正在为lern做一个关于.NET中Web服务的小项目,我的问题如下 我有一个银行网络服务可以“处理”资金转账,还有一个提供服务,我想做的是在发生资金转账时让银行服务通知我的提供服务。一种解决方案是直接呼叫提供服务,但这并不是最好的解决方案。我考虑过UDDI,但我认为这是太多的工作了。据我所知,ESB可以在这里使用,但坦率地说,我不知道如何使用它。我的意思是,我怎么打电话,从银行提供服务,而不直接打电话 也许NServiceBus可以在这里使用,但同样不知道如何让它与WCF一起工作。 有什么

我目前正在为lern做一个关于.NET中Web服务的小项目,我的问题如下

我有一个银行网络服务可以“处理”资金转账,还有一个提供服务,我想做的是在发生资金转账时让银行服务通知我的提供服务。一种解决方案是直接呼叫提供服务,但这并不是最好的解决方案。我考虑过UDDI,但我认为这是太多的工作了。据我所知,ESB可以在这里使用,但坦率地说,我不知道如何使用它。我的意思是,我怎么打电话,从银行提供服务,而不直接打电话

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

编辑: 好的,为了更清楚,我想知道,我如何使用ESB或其他框架/服务来解耦Web服务,这样一个就不会直接调用另一个

一种解决方案是直接呼叫提供服务,但这并不是最好的解决方案

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

您应该使用相同的通信技术将一个服务调用到另一个服务。这降低了复杂性。当您使用银行Web服务、提供服务或两者兼而有之时,需要学习的东西越少,出错的地方就越少,更重要的是相同的通信API


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

我知道许多系统都是这样工作的,我只是认为进一步将它们解耦将是一个好主意。另外,为了学习新事物,我想这样做,因为在这个简单的示例中,我非常感兴趣如何将ESB用于集成。消息传递也是间接的,您发送一个事件通知,然后由某个指定的处理程序执行该工作,银行服务不需要知道通知发送给谁。@user1418979您可能想在帖子中提及将服务解耦的动机,这会更清楚。如果系统变得更复杂,我认为这是一个很好的方法。@henginy我认为“服务解耦动机”的答案已经在OP的问题中,他/她说:“我的意思是如何在没有直接呼叫的情况下从银行服务中呼叫提供服务”。从这一点上,我们可能会假设服务与业务能力的角度完全不同,从而保证某种程度的解耦。@TomRedfern我认为这个答案似乎忽略了动机,即使可以推断/假设。OP已经需要用评论来澄清它,我建议将这些信息复制到问题中;)我觉得这个问题太宽泛了。连标题都没说什么。我想说,它需要进行大量的改写,以适合作为一个实际的问题,然后你会发现,你所问的问题可能已经被讨论过很多次了,我倾向于不同意@oleksii在这一点上的观点——你在问题和随后的评论中描述需求的方式让我认为使用消息传递是最好的方法。这是基于这样的假设,即银行服务不需要来自Offer服务的响应来满足呼叫者的请求,并且这些服务从业务能力的角度来看有足够的差异,因此它们需要作为单独的关注点进行管理。