图片102
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。XML+XSD,SOAP和WSDL是网络服务平台中的三种主要技术。
(1)XML+XSD。
WebService使用HTTP协议来传输数据,并用XML格式封装数据(即XML中指明调用远程服务对象的方法,传递的参数是什么,以及该服务对象的返回结果是什么)。在Web服务平台中,XML是表示数据的格式。除容易建立和容易分析之外,XML的主要优势在于,它与供应商无关,但与平台无关。无关因素比技术优势更为重要:软件厂商不会选择其竞争者发明的技术。
XML解决了数据表示的问题,但是它并没有定义一组标准的数据类型,更没有提到如何扩展这种数据类型。举例来说,成形数代表什么?是16,32,还是64?这是实现互操作性的关键。XMLSchema(XSD)是一组专门处理此问题的标准。其定义了一组标准的数据类型,并提供一种扩展该数据类型的语言。WebService平台使用XSD作为它的数据类型系统。如果您使用某种语言(例如VB.NET或C#)构建Webservice,所有您使用的数据类型必须转换成XSD类型,以符合WebService标准。您所使用的工具可能已经自动地为您提供了这种转换,但是您可能会根据您的需求修改您的转换过程。
(2)SOAP。
WebService在通过HTTP协议发送请求和接收结果时,以XML格式封装了所发送的请求和结果内容,添加一些特定的HTTP消息头来说明HTTP消息的内容格式,具体的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了调用WebService的标准RPC方法。
SOAP协议=HTTP协议+XML数据格式。
SOAP协议定义SOAP消息的格式,SOAP协议基于HTTP协议,SOAP也是基于XML和XSD的,而XML是SOAP数据编码方式。比方说,HTTP就是普通公路,XML是中间的绿色隔离带和两侧的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造后的高速公路。
(3)WSDL。
就像我们到一家商店买东西,首先要知道店里有什么可以买,然后才能买到,商家的做法是张贴广告海报。WebService也同样如此,WebService客户机要调用WebService服务,首先要知道该服务的地址所在,由于此服务中有哪些方法可以调用,因此,WebService务器端首先要通过WSDL文件说明您的家庭外部调用的哪些服务,什么是服务(服务中包含哪些方法,方法接受什么参数,返回值是什么),以哪个URL地址表示服务的网络地址,以何种方式调用服务。
WSDL(Web Services Description Language)是一种用来描述WebService及其函数、参数和返回值的XML语言。这是WebService客户端和服务器端都可以理解的标准格式。由于WSDL基于XML,因此它既可以被机器读取,也可以被人类阅读,这将是一个巨大的优势。有些最新的开发工具既可以基于Webservice生成WSDL文档,也可以导入WSDL文档,生成调用相应WebService的代理类代码。
WSDL文件保存在Web服务器上,可通过URL地址访问。在要调用WebService服务前,客户要知道WSDL文件的地址。WebService服务提供商可以用两种方法公开其WSDL文件地址:1.注册到UDDI服务器以供查找;2.直接将其告知客户端调用者。