webservice系列教学(1)
2024-07-21 02:21:52
供稿:网友
关键字: soap xml xsd wsdl
1. 什么是webservice
从表面上看,web service 就是一个应用程序,它向外界暴露出一个能够通过web进行调用的api。这就是说,你能够用编程的方法通过web来调用这个应用程序。
对web service 更精确的解释: web services是建立可互操作的分布式应用程序的新平台。作为一个windows程序员,你可能已经用com或dcom建立过基于组件的分布式应用程序。com是一个非常好的组件技术,但是我们也很容易举出com并不能满足要求的情况。web service平台是一套标准,它定义了应用程序如何在web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写web service ,只要我们可以通过web service标准对这些服务进行查询和访问。
不管你的web service是用什么工具,什么语言写出来的,只要你用soap协议通过http来调用它,总体结构都应如下图所示。通常,你用你自己喜欢的语言(如vb 6或者vb.net)来构建你的web service,然后用soap toolkit或者.net的内建支持来把它暴露给web客户。于是,任何语言,任何平台上的客户都可以阅读其wsdl文档,以调用这个web service。客户根据wsdl描述文档,会生成一个soap请求消息。web service都是放在web服务器 (如iis) 后面的,客户生成的soap请求会被嵌入在一个http post请求中,发送到web服务器来。web服务器再把这些请求转发给web service请求处理器。对vb 6程序来说,web service请求处理器是一个与soap toolkit组件协同工作的asp页面或isapi extension。而对vb.net程序来说,web service请求处理器则是一个.net framework自带的isapi extension。请求处理器的作用在于,解析收到的soap请求,调用web service,然后再生成相应的soap应答。web服务器得到soap应答后,会再通过http应答的方式把它送回到客户端。
2. 基本概念
soap
web service建好以后,其他人就会去调用它。简单对象访问协议(soap)提供了标准的远程过程调用( rpc)方法来调用web service。soap规范定义了soap消息的格式,以及怎样通过http协议来使用soap。soap也是基于xml和xsd的,xml是soap的数据编码方式。客户端和服务端之间的方法调用请求和结果返回值都放在这些消息里。
xml和xsd
可扩展的标记语言(xml)是web service平台中表示数据的基本格式。除了易于建立和易于分析外,xml主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的。xml解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。w3c制定的xml schema(xsd)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。web service平台就是用xsd来作为其数据类型系统的。当用某种语言(如vb.net或c#)来构造一个web service时,为了符合web service标准,所有使用的数据类型都必须被转换为xsd类型。
wsdl(web services description language)
用于描述服务端所提供服务的xml格式。wsdl文件里,描述了服务端提供的服务,提供的调用方法,以及调用时所要遵循的格式,比如调用参数和返回值的格式等等。wsdl 很像com编程里的idl(interface description language),是服务器与客户端之间的契约,双方必须按契约严格行事才能实现功能。
wsml(web services meta language)
用于描述wsdl里提供的方法与实现该方法的com对象之间的映射关系。该文件是microsoft的实现中特有的,不是soap标准的一部分。一般情况下,该文件只在服务端存在。