XML Web Services 底层结构
为了在不同的Web中使用,XML Web Services 必须对采用的操作系统、对象模块和编程语言是未知的。同时为了使XML Web Services像其他基于Web的技术一样受到广泛的欢迎,它必须是:
l 松耦合:系统之间的委托管理被认为是自描述、基于文本的消息才是松耦合。而系统之间使用的大量的自定义的系统开销来通讯和得到更大理解。
l 普遍采用的通讯方式:如今或可见的未来如果某人开发了一个操作系统没有和Inte.net 连接的能力将是不可想象的。因此,连接任何系统或设备到Internet 的能力可保证此设备或系统的有效性。
l 通用数据格式:由于在私有的、闭环的通讯方法之上采用现存的、开放的标准,所有支持相同标准的系统理解XML Web Services才是可能的。利用自描述、基于文本的消息(XML Web Services和客户端不必知道下面的系统而能共享的消息)使自治系统和异种系统之间能够通信。XML Web Services使用XML完成此功能。
XML Web Services使用底层结构提供下了功能:一个定位XML Web Services服务的发现机制,定义如何使用这些服务的描述,与之通讯的标准线格式。
XML Web Services 底层结构
底层结构模块 |
定义 |
XML Web Services Directories |
XML Web Services Directories 提供了一个XML Web Services定位中心,指向其它公司提供的XML Web Services。 例如UDDI注册提供此功能。XML Web Services 客户或许需要引用XML Web Services Directory. |
XML Web Services Discovery |
XML Web Services Discovery 是一个定位或发现更多相关文档的过程,此文档使用Web服务描述语言(WSDL)来描述了一个特定的XML Web Services。DISCO规范定义了定位服务描述的运算方法。 如果XML Web Services 客户知道服务描述的位置,可以跳过寻找过程。 |
XML Web Services Discription |
为了知道如何和一个特定的XML Web Services相互作用的方法,必须提供XML Web Services支持交互的服务描述定义。 XML Web Services 客户在使用XML Web Services之前必须知道如何与XML Web Services交互。 |
XML Web Services Wire Formats |
为了使用最常用的通讯,XML Web Services必须使用wire formats。此协议能被任何支持最通用的Web标准所理解。 SOAP 是XML Web Services 通讯的关键协议。 |
Anatomy of an XML Web Service
当你调用一个XML Web service 时发生的过程和调用一个常规方法类似。区别是你不是在客户端调用一个方法而是通过特定的传输生成一个请求消息,例如:HTTP。因为XML Web service 方法能够定义在一台不同的计算机,XML Web service 需要处理的请求信息必须通过网络传递到驻留XML Web service的计算机。XML Web service服务器处理完这个信息后再通过网络发回结果到客户端。
下列图例显示了客户端和XML Web service 服务端的通讯过程:
XML Web service 生命期
下面描述了XML Web service 调用时发生事件的序列:
1. 客户端建立了新的XML Web service 服务代理类实例,此实例对象驻留在客户端的计算机中。
2. 客户端调用一个代理类的方法。
3. 客户计算机的底层结构序列化XML Web service 方法的参数为SOAP消息,并通过网络将其发送到XML Web service 服务端。
4. 在服务端的底层结构及收到SOAP消息,并房序列化为XML。建立一个类的实例来完成XML Web service,调用XML Web service 方法并传递XML参数。
5. XML Web service 方法执行,最终设置返回值和输出参数。
6. XML Web service 服务方的底层结构将返回值和数除参数序列化为SOAP消息。并通过网络发回客户端。
7. 客户端的底层结构接收到上面的SOAP消息,反序列化XML为返回值和输出参数。并将其传递给代理类实例。
8. 客户端接受到返回式和输出参数。