2

我继承了这个非常奇怪的代码库,他们在一堆内部Web 服务上构建了一个外部Web 服务,只是为了使用WS-SecurityWS-Encryption等添加身份验证/授权。参与此活动不到一个月,我已经感受到通过严格的 WSDL 耦合易失性组件的痛苦,尤其是考虑到其中一些使用 WCF 而其他选择首先使用 WSDL。在各个级别管理各种版本的生成代理和包装器是一场噩梦!

我承认设计过于复杂,本来可以更好,但我的问题本质上是:

  • 您是否曾经构建一个 Web 服务只是为了提供对一堆服务的横切关注点?
  • 这会更好地实现为 Web 服务处理程序吗?

最后...

  • 您会将其归类为 Web 服务网关模式吗?
4

2 回答 2

3

一年前我看到了那个东西正在建造。当团队花费数月时间构建 4 个 Web 服务时,我几乎哭了,其中 2 个只是简单地包装了其他内部服务,使用 WCF 和一些严重的加密。他们包装内部错误的唯一原因是更改返回的潜在错误编号。

那么,我会故意这样做吗?没有。

将它作为几乎其他任何东西实施会更好吗?是的。

我会将其归类为 WTF 模式吗?绝对地。

更新:

我刚刚记得的一件事是,有一种称为“企业服务总线”的架构,它的目的是为其他 SOA 系统提供一个通用接口。这样,不同的应用程序使用什么来实现其端点机制(WCF、WSE 1/2/3、RESTful 等)并不重要。

BizTalk 是 ESB 的一个示例,还有许多其他现成的程序可供使用。基本上,您的应用程序将一条消息传递给 ESB,它会以可靠的方式处理将该消息发送到其他系统以及编组返回的任何响应。

这也意味着您可以将其他应用程序与端点的多种类型的更改隔离开来。当然,如果新的端点需要额外的信息,那么你就必须修改调用者。但是,如果他们所改变的只是机制,那么一个好的 ESB 将能够处理这些更改而不会影响您的应用程序。

于 2008-10-03T05:10:14.433 回答
0

如果您将服务暴露给外部世界并且需要加强安全性,我已经看到了类似的实现......请查看此MSDN 专栏..

于 2008-10-03T05:04:15.010 回答