我对如何配置与外部系统接口(interface)的系统有疑问。
以下是我想放在一起的各个部分:
选项 1
- 我有 3 个外部服务,它们将 3 种不同类型的消息引入系统。
- 我有一个 WCF 服务,它监听所有这些外部服务,将消息转换为通用格式。
- 我有一个 WPF UI,它使用双工 tcp 绑定(bind)与 WCF 服务连接,消息在 UI 上更新。
- UI 还将任何传出消息发送到服务,而服务又将其发送到外部服务。
我的问题是,您认为这是构建解决方案的可扩展、可维护且经济高效的方法吗?如果我在 Intranet 场景中部署它,您是否看到任何可能出现的特定问题?
我给出的另一个考虑如下:
选项 2
- 有 3 个连接到外部服务的窗口服务。
- 每项服务都会将消息制作成规范格式,并将其放在特定主题的消息总线上。
- 有一个 WCF 服务,可以监听消息总线上的主题以获取新消息。
- 使用双工绑定(bind)通过任何传入消息更新客户端。
- 客户端将传出消息发送到 WCF 服务,WCF 服务又将其转换到 Windows 服务监听的特定主题,然后将消息发送到外部系统。
我在这里有点困惑,你能帮我看看哪种方法更好吗?如果可以的话,请给我指出讨论这些场景的任何链接?
数据交换量为每 5 分钟 400 条消息,分布在外部系统中。
我相信你们中的很多人可能都遇到过这种情况,所以如果您有更好的方法来解决这个问题,请告诉我。
谢谢, -迈克
最佳答案
在处理 3 种相似但不同的消息格式时,我当然认为您的选项 2 是正确的。这实现了两种集成模式,adapter和 canonical message .
但是,我认为使用相同的“适配器”服务作为向相反方向传输的消息的管道是错误的。最好将响应 channel 从请求处理管道中抽象出来。
您可以实现分发器(或 router)模式来处理将响应消息路由回请求源。
关于c# - 与外部系统连接 |如何设计系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351093/