我的任务是创建一个需要在两个独立系统之间交换数据(通过HTTP)的中间层(例如,Receiver< => Intermediate Layer(IL)< => Sender)。 Receiver和Sender都通过Web服务公开一组API。每次在Sender系统中发生事务时,IL应该知道它(我正在考虑创建一个不断ping发件人的Windows服务),按摩数据,然后将其传递给Receiver。 IL可以将数据临时存储在SQL数据库中,直到将其传输到Receiver。我有以下问题 -
我需要使用自定义.NET解决方案在MS平台上实现此功能。有人告诉我不要使用像BizTalk这样的中间件。如果重要的话,接收器是SDFC实例。
非常感谢任何指针。谢谢。
答案 0 :(得分:2)
管理交换机的Windows服务听起来很不错。 是的WCF可以处理传统的Web服务。
如何确保交付有保障?
为确保投放,您可以使用TransactionScope来处理数据之间的传递
Receiver <=> Intermediate Layer
和Intermediate Layer <=> Sender
,但我不会尝试一起做。
您可能需要考虑某种排队机制来将数据发送到接收方;我想我更多的是考虑逻辑队列而不是实际的排队组件。工作流框架也可以是一种选择。
确保您有良好的记录/审核;确保它坚如磐石,拥有正确的信息并且易于阅读。假设您编写服务,它将在没有监督的情况下执行,因此操作/支持方面要求更高。
考虑场景:
如何通过互联网确保邮件的安全性?
HTTPS。假设其他现有客户端调用Web服务,他们如何确保安全性? (我在考虑加密)。
处理并发问题的最佳做法是什么?
嗯可能是一个单独的问题。您应该能够轻松地找到相关信息。我们采取了多少数据?什么样的频率?您想要使用多少Windows服务实例 - 如果一个足够,为什么并发会成为一个问题?
错误处理的最佳做法是什么?
与并发相同,但我可以提供一些指示:
如何确保将数据接收回发件人?
将其包括在内(发送收据)作为交易的一部分。
从另一个角度来看 - 看看CodePlex for ESB类型库,您可能会发现一些有用的东西:http://www.codeplex.com/site/search?query=ESB&ac=8 例如ESBasic,它似乎是一个可以重用的类库。