知识卡片
SOAP/WSDL把请求结构与协议死死捆绑在一起
内容
SOAP服务调用的协议本质是把请求结构、调用行为和返回格式通过WSDL捆绑进同一份描述里。问题是想更新后台实现或消息格式,几乎不可能不影响客户端——WSDL绑定本想通过异步减少耦合,实际却背道而驰,让客户端和特定端口绑定死死锁在一起。这解释了为何SOAP号称松耦合异步,实践中却常沦为”面向服务的恼火”。
参考来源
- 位置:《架构之美》第5章《面向资源的架构:在Web中》5.2节《传统的Web服务》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0139.xhtml)
- 结论依据:原文明确"这种关注点分离与SOAP服务调用的协议本质形成鲜明的对比,在SOAP服务中,请求的结构、调用的行为和返回类型的格式通常通过Web服务定义语言(WSDL)捆绑到一个协议上……我们通常不能在不影响客户端的情况下改变一个端口的后台绑定"。
- 原始内容:这种关注点分离与SOAP服务调用的协议本质形成鲜明的对比,在SOAP服务中,请求的结构、调用的行为和返回类型的格式通常通过Web服务定义语言(WSDL)捆绑到一个协议上……我们通常不能在不影响客户端的情况下改变一个端口的后台绑定。