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

标签 c# wcf architecture

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

以下是我想放在一起的各个部分:

选项 1

  • 我有 3 个外部服务,它们将 3 种不同类型的消息引入系统。
  • 我有一个 WCF 服务,它监听所有这些外部服务,将消息转换为通用格式。
  • 我有一个 WPF UI,它使用双工 tcp 绑定(bind)与 WCF 服务连接,消息在 UI 上更新。
  • UI 还将任何传出消息发送到服务,而服务又将其发送到外部服务。

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

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

选项 2

  • 有 3 个连接到外部服务的窗口服务。
  • 每项服务都会将消息制作成规范格式,并将其放在特定主题的消息总线上。
  • 有一个 WCF 服务,可以监听消息总线上的主题以获取新消息。
  • 使用双工绑定(bind)通过任何传入消息更新客户端。
  • 客户端将传出消息发送到 WCF 服务,WCF 服务又将其转换到 Windows 服务监听的特定主题,然后将消息发送到外部系统。

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

数据交换量为每 5 分钟 400 条消息,分布在外部系统中。

我相信你们中的很多人可能都遇到过这种情况,所以如果您有更好的方法来解决这个问题,请告诉我。

谢谢, -迈克

最佳答案

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

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

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

关于c# - 与外部系统连接 |如何设计系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351093/

相关文章:

c# - 无法复制文件指定的文件名太长。将机器人发布到 azure 时

c# - 流式下载从WCF到android,使用Json、Rest还是soap?

WCF 4.0 路由

php - 使用 PHP 和 Symfony 的 Websockets - 网络和服务器架构

Java:在其他各种类中使用一个类的相同实例

C# 和 VB.Net 对同一个方程给出不同的结果

c# 指针与 IntPtr

c# - 从 Windows 应用程序执行命令行

WCF 服务无法在 HTTPS/SSL 下运行

java - 这是状态机的用例吗?如果是这样,您建议使用哪个开源软件?