1、Web Service 的结构分析摘 要本文从使用者和协议层的两个角度分析了 Web Service的结构。提供了 WSDL,Web 服务描述语言,并以 WSDL为例分析了文档结构,以进行描述和绑定服务。 关键词Web Service;SOAP 消息;WSDL 中图分类号:TM743 文献标识码:A 文章编号:1009-914X(2016)08-0317-01 1.绪论 随着互联网络的广泛应用和发展,特别是.NET 技术的升温和市场的日渐成熟,微软公司的.NET 框架和 SUN公司的 J2EE框架均可作为开发平台和工具。只有少数有实力的公司具备开发两套独立的产品的实力,以满足不同的客户需求。更
2、多的厂商则希望自己开发的产品能相互移植,并能更容易的与其他有需要的业务系统接口。 Web Service1的出现在一定程度上实现了上述所需要的功能。狭义的说:Web Service 就是 XML与 HTTP相结合。HTTP 是一个在 Internet上广泛使用的协议。XML2是一种元语言,你可以用它书写特定的语言来描述客户和服务之间或者组件和复杂服务之间的交互。在通过 Web Service之后,XML 格式的消息被转变成中间件的请求,返回的结果也会转化成 XML格式。 可见 Web Service并不是一种新的技术,它是将 XML、Internet 等网络软件技术有机结合后,所产生的一种新的
3、 web应用程序分支。它是一种包括自包含、自描述、模块化的应用,可以发布、定位、通过 web调用。它可以执行从简单的请求到复杂商务处理的任何功能,一旦部署以后,其他 Web Service应用程序就可以发现并调用它部署的服务。 2.Web Service 结构分解 因此,可以从两个角度分解 Web Service 结构: 1、 从每个单独的 Web Service 使用者的角度: 服务的请求者:即任意 Web Service 的消费者,通过网络连接和发送 XML 请求使用一个实际可用的 Web Service。 服务的提供者:负责维护 Web Service和提供相应的服务。 服务注册中心:即
4、一个 Web Service的“黄页” ,使提供者可以发布新的服务,请求者可以找到需要的服务。 2、 从 Web Service协议层的角度 Web Service 的协议层仍在不断发展中。当前,一般将其分为 4层 传输层:该层位于协议堆栈的最底层,主要负责在应用程序间传输信息。当前该层使用包括 HTTP、FTP、SMTP 协议在内的多种传统网络传输协议。 XML 消息层:该层负责将信息编码为通用 XML格式,当前该层使用XML-RPC、SOAP(简单对象访问协议) 。 服务描述层:该层负责描述指定 Web Service的公用接口,当前该层使用 WSDL(Web Service Descri
5、ption Language,Web 服务描述语言)。 查找发现层:该层负责将 Web Service集中到一个公用的注册中心,相当于一个 Web Service 的“黄页” ,并提供发布和查找功能,当前使用 UDDI(Universal Description,Discovery, and Integration,统一描述、发现和集成) 。不难看出,Web Service是建立在一些通用协议的基础上,如HTTP、SOAP、XML、XML-RPC、WSDL、UDDI 等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有明显的倾向,因此将会有较强的生命力。 3.SOAP SOAP,简单
6、对象访问协议3:用于分散或分布的环境中交换信息的简单的协议,它是一个基于 XML的协议,通过 XML Schema 定义了传递数据时的统一方式。包括三个部分: 1、 描述消息中包含什么内容以及如何处理它们。 2、 用于表示应用程序数据类型的编码规则,主要使用 XML Schema 数据类型,并添加了 Array 和 Struct,用于表示复杂的数据结构。 3、 表示 Request 和 Response 的协定。 Envelope:是每个 SOAP 消息的根元素。 Header:可选的 Header 元素提供了一个可扩展的框架用于定义应用程序所需的额外信息。 Body:Body 元素是所有 S
7、OAP 消息所必须的,一个典型的 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
8、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、
9、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