我目前设计将各种应用程序中使用消息队列系统,和我有困难的时候试图决定是否使用WCF提供的服务或使用共享类库(DLL)并与客户端部署DLL。设计决策 - WCF服务或共享类库(DLL)
有关其他信息:
•队列存储在SQL数据库中。
•我们预计使用该消息队列系统有大约3-7不同的应用程序/客户端。
•客户端/应用程序可能会或可能不会在一台计算机上运行。
•我们不希望每天都在排队消息的重负载(约1000-10000每天(总值估计BTW))
•有点“关键任务” - 几个客户端/应用程序不能做它的工作,如果这项服务不可用。
•一切都在企业网络内运行 - 不需要访问互联网。
我已经给了一些,虽然对利弊的每一个决策:
WCF服务
优点:
•可以更新队列系统的逻辑,而不必更新客户端
房•可扩展性 - 但最有可能不会成为一个问题。
缺点:
•更难以部署
•排队系统无法使用该服务是否下降(除非我们集群/场)
时诊断/调试•需要更多的努力
共享的类库(DLL)
优点:
•易于调试
•易于开发力度
•只需要确保DB可用 - 另一个服务/机上没有依赖。
缺点:
•部署头痛时,我们会不断更新的DLL - 我们可能会忘记更新所有依赖于该DLL的应用程序。
如果任何人都可以提供更多的解决方案的参数 - 这将是有益的!如果你对你认为最好的方向有看法,请告诉你!我会很感激任何有助于我做出决定的意见。
感谢您的时间,
阿德里安
谢谢马克。这通常是我如何开发我的WCF服务,但在我们的情况下,我们希望所有客户端都使用DLL或WCF(在我们看来,这两者都是维护难题)。我们想知道是否应该引用共享DLL或共享Web服务。如果将来我们意识到我们可能需要WCF,那么共享DLL将与“远程外观”接口,所有客户端将被更新为使用WCF服务。 – Adrian 2009-10-09 22:56:17
谢谢澄清。我已经扩展了我的答案,以更好地解决您的问题的这个方面(尽管我没有明确的答案)。 – 2009-10-10 06:26:20
@Mark:写得很好,我同意你的“我略微倾向于WCF”:-)应该很容易地将服务传播到多个Web服务器上以提供故障转移保护。 – 2009-10-10 09:45:15