.jpg)
图1:简化后的逻辑SOA环境
不难看出,在ESB之外,Web Service仅仅作为一个个Provider,以插件方式安置到ESB中,客户程序也更多的通过ESB找到每个Provider。但它仅仅是一个较为理想的状态,现实情况下很多时候根本没有中间的ESB,客户程序就是直接按需使用Web Service。因此,这个点对点的调用成了这样:
.jpg)
图2:点对点的调用
这里的中介者可能仅仅就是个网络,也可能包括一个在.Net或Java平台编译好的WSDL代理,也可能是更复杂的机制,它的设计和集成就成了很关键的因素,那么希望它起到什么作用呢?
笔者认为主要有三个:
•给客户程序一个透明的接口,借助它灵活的适应后端Web Service的变化。
•降低客户程序与Web Service直接调用带来的1:1甚至1:N直接耦合。
•提供高可用机制。
(注:本系列很多内容引用到Apress出版的《Web Service Patterns: Java Edition》(下文简称WSP),但介绍的模式不仅限于该书提及的14种,而且实现上会采用Visual Studio.Net 2005,客户程序会以Test Project的Unit Test形式出现。)
| 第1页: SOA现状 | 第2页: Web Service的模式化特征 |
| 第3页: 第一层的包装 | 第4页: SOA环境下典型的Web Service开发方式 |
| 第5页: 为Web Service依赖倒置 | 第6页: 如何实现一个示例 |
| 第7页: 完成XSD与对象实体的映射(XSD to Obje... | 第8页: 完成抽象的Web Service定义(optional) |
| 第9页: 生成Web Service接口类型 | 第10页: 生成具体的报价Web Service |
| 第11页: 生成客户端Proxy | 第12页: 客户程序 |