|
知识路径: > 软件架构基础知识 > Web服务架构 >
|
相关知识点:2个
|
|
|
|
2004年2月11日,W3C提出了最新的Web Service协议栈,其内容如下图所示。
|
|
|
|
|
Web服务协议堆栈的下层为网络通信部分,Web服务继承了Web的访问方式,使用HTTP(S)作为网络传输的基础,除此之外Web服务还采用了其他的传输协议,如SMTP、FTP、JMS、HOP等。在消息处理方面,Web服务使用了SOAP(Simple Object Access Protocol,简单对象访问协议)作为消息的传送标准。在此之上是WSDL,用以描述Web服务的访问方法。位于最顶层的是与Web服务和应用程序以及Web服务之间相互集成相关的协议,其中包含发现、集成等若干方面。除了底层的传输协议外,整个Web服务协议栈是以XML为基础的,XML语义的精确性和灵活性赋予了Web服务强大的功能。除这些基本协议外,还有一些需要讨论的问题,那就是安全和管理,这两大问题不是Web服务可以独立解决的,例如,在安全方面就需要与PKI(Public Key Infrastructure,公共密钥基础设施)、LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)等相结合。
|
|
|
(1)SOAP。SOAP是一种基于XML的协议,通过SOAP,应用程序可以在网络中进行数据交换和远程调用。SOAP使用XML进行编码,是一个开放式的协议。SOAP本身并没有定义信息的语义、服务质量、事务处理等问题,它仅仅是一个对象通信协议,与应用平台完全无关。我们可以将SOAP理解为:HTTP+XML+RPC(Remote Procedure Call,远程过程调用)。在这里,HTTP是网络中的通信协议;XML是数据格式的协议;虽然将SOAP理解为RPC的一种并不准确,因为SOAP并非单纯的远程过程调用,SOAP要强大得多。但以RPC的观点看待SOAP,有助于理解SOAP。由于SOAP采用XML和HTTP封装通信消息,所以SOAP需要增加XML解析和HTTP传输的额外开销。
|
|
|
(2)WSDL。WSDL包含了一套基于XML的语法,将Web服务描述为能够进行消息交换的服务访问点的集合,从而满足了这种需求。WSDL定义了可被机器识别的SDK(Software Development Kit,软件开发工具包)文档,同时,WSDL也可用于描述自动执行应用程序在通信中所涉及的细节问题。WSDL的目标是描述如何使用程序来调用Web服务,所以我们可以把WSDL理解为Web服务的SDK标准,或者是Web服务的接口定义。对于服务提供者来说,既需要描述它们提供的Web服务是做什么的,还要描述如何使用他们提供的Web服务。
|
|
|
(3)UDDI(Universal Description Discovery and Integration,统一描述、发现和集成)。UDDI提供了一种Web服务的发布、查找和定位方法。我们可以将UDDI理解为一种目录服务,Web服务提供者使用UDDI将服务发布到服务注册中心,而Web服务使用者通过UDDI查找并定位服务。UDDI除了目录服务之外,还定义了一个用XML表示的服务描述标准。UDDI定义了一种Web服务的发布方式。UDDI商业注册中心可以为程序或程序员提供Web服务的位置和技术信息。服务提供者可以向专用的UDDI结点发布服务的描述信息,而服务的使用者可以动态的查询并连接到特定的Web服务。
|
|
|