我继承了这个非常奇怪的代码库,他们在一堆内部 Web服务上构建了一个外部 Web服务,只是为了使用 WS-Security , WS-Encryption 等。这次参与不到一个月,我已经感受到通过严格的WSDL耦合volatile组件的痛苦,特别是考虑到其中一些使用WCF而其他人选择首先使用WSDL。在各个级别管理生成的代理和包装器的各种版本是一场噩梦!
我会承认设计过于复杂,可能会好得多,但我的问题基本上是:
最后......
答案 0 :(得分:3)
我看到一年前正在建造的东西。当团队花费数月时间构建4个Web服务时,我几乎哭了,其中2个使用WCF和一些严重的加密来简单地包装其他内部服务。他们包装内部的唯一原因是改变了可能出现的错误数字。
那么,我有意这样做吗?不。
它几乎可以更好地实现吗?是的。
我会根据WTF模式对其进行分类吗?绝对
<强>更新强>
我记得的一件事是有一个名为“企业服务总线”的架构。它的目的是为其他SOA系统提供一个通用接口。这样,不同的应用程序使用它们的终点机制(WCF,WSE 1/2/3,RESTful等)无关紧要。
BizTalk是ESB的一个例子,还有许多其他可以使用的现成程序。基本上,您的应用程序会将消息传递给ESB,它会以可靠的方式处理将消息发送到其他系统以及将任何响应编组回来。
这也意味着您可以将其他应用程序与端点的多种类型的更改隔离开来。当然,如果新的终点需要额外的信息,那么你必须修改调用者。但是,如果它们正在改变的是机制,那么一个好的ESB将能够在不影响您的应用程序的情况下处理这些更改。
答案 1 :(得分:0)
如果您将服务暴露给外部世界并且需要收紧安全性,我已经看到过类似的实现。检查这个MSDN column ..