论文部分内容阅读
[摘 要]本文从使用者和协议层的两个角度分析了Web Service的结构。提供了WSDL,Web 服务描述语言,并以WSDL为例分析了文档结构,以进行描述和绑定服务。
[关键词]Web Service;SOAP消息;WSDL
中图分类号:TM743 文献标识码:A 文章编号:1009-914X(2016)08-0317-01
1.绪论
随着互联网络的广泛应用和发展,特别是.NET技术的升温和市场的日渐成熟,微软公司的.NET框架和SUN公司的J2EE框架均可作为开发平台和工具。只有少数有实力的公司具备开发两套独立的产品的实力,以满足不同的客户需求。更多的厂商则希望自己开发的产品能相互移植,并能更容易的与其他有需要的业务系统接口。
Web Service[1]的出现在一定程度上实现了上述所需要的功能。狭义的说:Web Service就是XML与HTTP相结合。HTTP是一个在Internet上广泛使用的协议。XML[2]是一种元语言,你可以用它书写特定的语言来描述客户和服务之间或者组件和复杂服务之间的交互。在通过Web Service之后,XML格式的消息被转变成中间件的请求,返回的结果也会转化成XML格式。
可见Web Service并不是一种新的技术,它是将 XML、Internet等网络软件技术有机结合后,所产生的一种新的web应用程序分支。它是一种包括自包含、自描述、模块化的应用,可以发布、定位、通过web调用。它可以执行从简单的请求到复杂商务处理的任何功能,一旦部署以后,其他Web Service应用程序就可以发现并调用它部署的服务。
2.Web Service 结构分解
因此,可以从两个角度分解 Web Service 结构:
1、 从每个单独的Web Service 使用者的角度:
服务的请求者:即任意 Web Service 的消费者,通过网络连接和发送XML 请求使用一个实际可用的Web Service。
服务的提供者:负责维护Web Service和提供相应的服务。
服务注册中心:即一个Web Service的“黄页”,使提供者可以发布新的服务,请求者可以找到需要的服务。
2、 从Web Service协议层的角度
Web Service的协议层仍在不断发展中。当前,一般将其分为4层
传输层:该层位于协议堆栈的最底层,主要负责在应用程序间传输信息。当前该层使用包括 HTTP、FTP、SMTP 协议在内的多种传统网络传输协议。
XML 消息层:该层负责将信息编码为通用XML格式,当前该层使用XML-RPC、SOAP(简单对象访问协议)。
服务描述层:该层负责描述指定Web Service的公用接口,当前该层使用 WSDL(Web Service Description Language,Web 服务描述语言)。
查找发现层:该层负责将Web Service集中到一个公用的注册中心,相当于一个Web Service
的“黄页”,并提供发布和查找功能,当前使用 UDDI(Universal Description,Discovery, and Integration,统一描述、发现和集成)。
不难看出,Web Service是建立在一些通用协议的基础上,如HTTP、SOAP、XML、XML-RPC、WSDL、UDDI等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有明显的倾向,因此将会有较强的生命力。
3.SOAP
SOAP,简单对象访问协议[3]:用于分散或分布的环境中交换信息的简单的协议,它是一个基于XML的协议,通过 XML Schema 定义了传递数据时的统一方式。包括三个部分:
1、 描述消息中包含什么内容以及如何处理它们。
2、 用于表示应用程序数据类型的编码规则,主要使用 XML Schema 数据类型,并添加了 Array 和Struct,用于表示復杂的数据结构。
3、 表示 Request和 Response的协定。
Envelope:是每个 SOAP 消息的根元素。
Header:可选的Header 元素提供了一个可扩展的框架用于定义应用程序所需的额外信息。
Body:Body 元素是所有 SOAP 消息所必须的,一个典型的 Body 元素包含 RPC 请求和响应。
Fault:当发生错误时,Body元素将包括一个 Fault 元素,包含了该错误的所有详细信息。
WSDL,Web 服务描述语言
UDDI(Universal Description, Discovery, and Integration,统一描述、发现和集成):
Web服务描述语言 (WSDL) 使用XML语法,用来描述一个Web Service能做什么,它的位置在哪里,如何调用它等等。当在以SOAP/HTTP/MIME作为远程对象调用机制的情况下,WSDL会发挥其最大作用[4]。
UDDI则描述了Web Service的绝大多数方面,包括服务绑定等细节。因此,WSDL可以看作是UDDI服务描述的子集。
4.结论与展望
当前的 Web Service 仍然不很成熟,主要表现在以下几个方面:
1、 由于Web Service的基础是 XML,SOAP、WSDL、XML-RPC、UDDI 都是通过 XML作为元语言定义的。但是XML定义仍不统一,虽然 W3C 在2001 年发布 XML Schema,用于代替 DTDs,但微软也抛出了自己的XML 定义模式-“XDR”。而且 DTDs 也还有一定的市场,所以对于“跨平台使用”,这个 Web Service 最大的优势,有所制约。
2、 Web Service本身不提供加密机制,这对使用者的安全性是一个巨大的挑战。而使用SSL机制加密,则对性能有很大的影响,保守估计下降 20%-30%。
瑕不掩瑜,作为 Internet的一个革命性进步,Web服务必将开创一个分布式应用程序开发的新时代。
参考文献
[1] 王建斌,胡小生,李康君, 赵靓,REST风格和基于SOAP的Web Services的比较与结合 [J],计算机应用与软件,2010,27(9):298-300
[2] 周军锋,孟小峰,XML关键字查询处理研究[J],计算机学报 , 2012,35(12):2459-2478
[3] 刘志都,贾松浩,詹仕华,SOAP协议安全性的研究与应用[J], 计算机工程,2008,34(5):142-144
[4] 郝身刚,张丽,基于WSDL-S的轻量级语义Web服务匹配模型[J], 计算机工程与设计, 2010,31 (9):2147-2150
[关键词]Web Service;SOAP消息;WSDL
中图分类号:TM743 文献标识码:A 文章编号:1009-914X(2016)08-0317-01
1.绪论
随着互联网络的广泛应用和发展,特别是.NET技术的升温和市场的日渐成熟,微软公司的.NET框架和SUN公司的J2EE框架均可作为开发平台和工具。只有少数有实力的公司具备开发两套独立的产品的实力,以满足不同的客户需求。更多的厂商则希望自己开发的产品能相互移植,并能更容易的与其他有需要的业务系统接口。
Web Service[1]的出现在一定程度上实现了上述所需要的功能。狭义的说:Web Service就是XML与HTTP相结合。HTTP是一个在Internet上广泛使用的协议。XML[2]是一种元语言,你可以用它书写特定的语言来描述客户和服务之间或者组件和复杂服务之间的交互。在通过Web Service之后,XML格式的消息被转变成中间件的请求,返回的结果也会转化成XML格式。
可见Web Service并不是一种新的技术,它是将 XML、Internet等网络软件技术有机结合后,所产生的一种新的web应用程序分支。它是一种包括自包含、自描述、模块化的应用,可以发布、定位、通过web调用。它可以执行从简单的请求到复杂商务处理的任何功能,一旦部署以后,其他Web Service应用程序就可以发现并调用它部署的服务。
2.Web Service 结构分解
因此,可以从两个角度分解 Web Service 结构:
1、 从每个单独的Web Service 使用者的角度:
服务的请求者:即任意 Web Service 的消费者,通过网络连接和发送XML 请求使用一个实际可用的Web Service。
服务的提供者:负责维护Web Service和提供相应的服务。
服务注册中心:即一个Web Service的“黄页”,使提供者可以发布新的服务,请求者可以找到需要的服务。
2、 从Web Service协议层的角度
Web Service的协议层仍在不断发展中。当前,一般将其分为4层
传输层:该层位于协议堆栈的最底层,主要负责在应用程序间传输信息。当前该层使用包括 HTTP、FTP、SMTP 协议在内的多种传统网络传输协议。
XML 消息层:该层负责将信息编码为通用XML格式,当前该层使用XML-RPC、SOAP(简单对象访问协议)。
服务描述层:该层负责描述指定Web Service的公用接口,当前该层使用 WSDL(Web Service Description Language,Web 服务描述语言)。
查找发现层:该层负责将Web Service集中到一个公用的注册中心,相当于一个Web Service
的“黄页”,并提供发布和查找功能,当前使用 UDDI(Universal Description,Discovery, and Integration,统一描述、发现和集成)。
不难看出,Web Service是建立在一些通用协议的基础上,如HTTP、SOAP、XML、XML-RPC、WSDL、UDDI等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有明显的倾向,因此将会有较强的生命力。
3.SOAP
SOAP,简单对象访问协议[3]:用于分散或分布的环境中交换信息的简单的协议,它是一个基于XML的协议,通过 XML Schema 定义了传递数据时的统一方式。包括三个部分:
1、 描述消息中包含什么内容以及如何处理它们。
2、 用于表示应用程序数据类型的编码规则,主要使用 XML Schema 数据类型,并添加了 Array 和Struct,用于表示復杂的数据结构。
3、 表示 Request和 Response的协定。
Envelope:是每个 SOAP 消息的根元素。
Header:可选的Header 元素提供了一个可扩展的框架用于定义应用程序所需的额外信息。
Body:Body 元素是所有 SOAP 消息所必须的,一个典型的 Body 元素包含 RPC 请求和响应。
Fault:当发生错误时,Body元素将包括一个 Fault 元素,包含了该错误的所有详细信息。
WSDL,Web 服务描述语言
UDDI(Universal Description, Discovery, and Integration,统一描述、发现和集成):
Web服务描述语言 (WSDL) 使用XML语法,用来描述一个Web Service能做什么,它的位置在哪里,如何调用它等等。当在以SOAP/HTTP/MIME作为远程对象调用机制的情况下,WSDL会发挥其最大作用[4]。
UDDI则描述了Web Service的绝大多数方面,包括服务绑定等细节。因此,WSDL可以看作是UDDI服务描述的子集。
4.结论与展望
当前的 Web Service 仍然不很成熟,主要表现在以下几个方面:
1、 由于Web Service的基础是 XML,SOAP、WSDL、XML-RPC、UDDI 都是通过 XML作为元语言定义的。但是XML定义仍不统一,虽然 W3C 在2001 年发布 XML Schema,用于代替 DTDs,但微软也抛出了自己的XML 定义模式-“XDR”。而且 DTDs 也还有一定的市场,所以对于“跨平台使用”,这个 Web Service 最大的优势,有所制约。
2、 Web Service本身不提供加密机制,这对使用者的安全性是一个巨大的挑战。而使用SSL机制加密,则对性能有很大的影响,保守估计下降 20%-30%。
瑕不掩瑜,作为 Internet的一个革命性进步,Web服务必将开创一个分布式应用程序开发的新时代。
参考文献
[1] 王建斌,胡小生,李康君, 赵靓,REST风格和基于SOAP的Web Services的比较与结合 [J],计算机应用与软件,2010,27(9):298-300
[2] 周军锋,孟小峰,XML关键字查询处理研究[J],计算机学报 , 2012,35(12):2459-2478
[3] 刘志都,贾松浩,詹仕华,SOAP协议安全性的研究与应用[J], 计算机工程,2008,34(5):142-144
[4] 郝身刚,张丽,基于WSDL-S的轻量级语义Web服务匹配模型[J], 计算机工程与设计, 2010,31 (9):2147-2150