与外部系统连接|如何设计系统

时间:2012-04-27 13:01:29

标签: c# wcf architecture

我对如何配置与外部系统接口的系统有疑问。

以下是我想要整理的各个部分:

选项1

  • 我有3个外部服务,可以为系统带来3种不同类型的消息。
  • 我有一个WCF服务,它监听所有这些外部服务,将服务转换为通用格式。
  • 我有一个WPF UI,它使用双工tcp绑定与WCF服务连接,并在UI上更新消息。
  • UI还会向服务发送任何外发消息,然后服务将其发送到外部服务。

我的问题是,您认为这是一种可扩展,可维护且经济高效的方法来构建解决方案吗?如果我在Intranet场景中部署此问题,您是否会看到任何特定问题?

我给出的另一个考虑因素如下:

选项2

  • 有3个连接到外部服务的Windows服务。
  • 每个服务都会将消息转换为规范格式,并将其放在特定主题的消息总线上。
  • 有一个WCF服务,用于侦听消息总线上的主题以获取新消息。
  • 使用双工绑定更新客户端以及任何传入消息。
  • 客户端将传出消息发送到WCF服务,然后WCF服务将其放到Windows服务侦听的特定主题上,然后将其发送到外部系统。

我在这里有点困惑,你能帮我解决哪一个更好的方法,如果可以的话,请指出我讨论这些场景的任何链接?

数据交换量是每5分钟发送400条消息,在外部系统中分配。

我相信很多人可能会遇到这种情况,所以如果你有更好的方法,请告诉我。

谢谢, -Mike

1 个答案:

答案 0 :(得分:1)

我当然认为在处理3种相似但不同的消息格式时,您的选项2是正确的。这实现了两种集成模式,adaptercanonical message

但是,我认为使用相同的“适配器”服务作为向相反方向传输的消息的管道将是一个错误。最好将响应通道抽象出请求处理管道。

您可以实现分发服务器(或router)模式来处理将响应消息路由回请求源。