8.6 Web Service
Web Service是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的Web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。Web Service是一个应用组件,它逻辑性地为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(HTTP、XML、SOAP)来访问Web Service,通过Web Service内部执行得到所需结果。
Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。在构建和使用Web Service时,主要用到以下几个关键的技术和规则。
● XML:描述数据的标准方法。
● SOAP:表示信息交换的协议。
● WSDL:Web服务描述语言。
● UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的、基于XML语言的、用于在互联网上描述商务的协议。
这里我们使用的案例是http://www.webxml.com.cn/zh_cn/index.aspx提供的天气预报,该服务页面为http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx。由于该服务是使用微软.NET标准实现的,所以该页面里面直接提供了一些调用的说明。
调用Web Serivce的方式很多,这里我们介绍两种最常用的调用方式WSDL和SOAP,另外再扩展介绍两个底层的做法,基于HTTP/HTML协议和Windows Sockets协议来实现Web Service调用。
8.6.1基于WSDL的调用
新建一个基于Web Service协议的脚本,然后单击SOA Tools菜单下的Manage Services。在弹出的窗口中单击Import,导入我们需要的连接WSDL串。这里需要导入的WSDL串地址为http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL。
如果不知道WSDL的地址,可以询问一下开发人员,或者尝试在浏览器中访问服务页面并在页面地址后添加“?WSDL”关键字,如果返回一个XML,一般说明这个数据包就是我们需要的WSDL包。
在导入窗口中选择URL方式导入,输入WSDL文件地址,单击Import后得到该服务信息,如图8.23所示。
图8.23 成功导入的服务信息
在成功导入Web Service的连接信息后,我们需要开始进行服务调用了,单击OK按钮关闭Manage Services窗口。选择菜单SOA Tools下的Add Service Call,弹出New Web Service Call窗口,如图8.24所示。
图8.24 New Web Service Call