【问题标题】:SOA service calling back a clientSOA 服务回调客户端
【发布时间】:2011-10-17 19:33:58
【问题描述】:

这更像是一个理论问题而不是实际问题,但鉴于我不了解 SOA 的原理,我仍然有点不确定这是否可以应用于任何应用程序。

通常的例子是客户端想从服务器知道一些东西,因此我们实现了一个服务,它可以在给定客户端请求的情况下提供该信息,它可以是无状态的或有状态的,等等。

但是当我们想要在服务器上发生某些事情时得到通知时会发生什么,也许我们调用一个服务来注册搜索并希望在新项目到达匹配或搜索的服务器时得到通知。 当然,这可以使用轮询和利用长超时来实现,但是我看不到在通常的协议中不调用询问就可以从服务器接收事件的方法。

如果你能给我举个例子,或者告诉我一个可以支持的架构,那么你就成功了。

【问题讨论】:

    标签: events client-server soa


    【解决方案1】:

    您是否考虑过发布-订阅(即;WS-Eventing、WS-Notification)?这些是向感兴趣的消费者/订阅者推送“东西”的常用方法。

    【讨论】:

    • 是的,在发布这个问题后,我进一步调查并发现有一些概念允许这种类型的通信、动态服务、pub-sub、SOA 2.0 等。我没有看到很多实现 /这方面的例子,但在每种情况下,这总是被认为是 WS 之间的通信,而不是 WS 和客户端之间的通信,事件、发布总是被发送到其他 WS,从而增加了瘦客户端的复杂性,这与拥有一个客户端的区别只需编排对不同 WS 的调用,而必须实现它自己的调用就很棒。
    【解决方案2】:

    您想使用发布-订阅设计。如果您使用的是 WCF,请查看 Juval Lowery 的 Programming WCF。在附录中,他展示了如何构建一个实际上完全按调用的 Pub-Sub 系统。它甚至不依赖 CallbackContracts 并保持长时间运行的 Channels 打开,因此在通信中断时不需要任何重新连接逻辑......更不用说任何轮询的需要了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      相关资源
      最近更新 更多