利用Web服务实现气象资料共享
吴嘉豪
(中山市气象台,广东中山 528401)
摘 要:本文主要介绍在Internet网络应用中,为方便与合作网站之间进行数据交换,利用新兴的应用通信和集成技术XML Web Service搭建Web服务平台,从而实现协作的网络天气预报和气象资料的共享服务,现通过我局与中山农业信息网(http://agri.21cn.com/)合作的开发实例,介绍该技术在资料共享中的应用。
关键词:Web Service;asp.net;资料共享
1.引言
现阶段,许多部门之间实现资料共享都是通过Ftp或拨号连接等方式进行资料传输的,但随着气象业务的不断发展,这种以Ftp或拨号连接进行资料传输的方式根本满足不了气象部门之间快速准确互通资料的要求,更有海量的传输数据,给部门中有限的存储空间以及网络传输带来了巨大的压力。在这种情况下,如何利用Internet网络的新兴技术,实现数据传输以及资料共享是迫不及待的。
2.XML Web Service技术特点
XML(eXtensible Markup Language,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO的SGML(Standard for General Markup Language,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML相比,关注于内容的XML具有以下诸多优点:
(1)良好的可扩展性,语言简单有效,可自行定义标记;
(2)内容与形式的分离,主要刻画数据内容,不考虑显示效果;
(3)有严格的语法要求,便于分析统一和与数据库信息转换;
(4)便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙。
因此,XML的出现和发展对于Internet和Intranet产生了巨大的影响。
Web Service是一种新的Web应用程序分支,它是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。XML Web Service就是在XML基础上发展起来的Web服务(Web Service),它使用基于XML 的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为单个计算网络协同运行。开发人员可以用像过去在创建分布式应用程序时使用组件一样的方式创建将来自各种源的Web服务组合在一起的应用程序。又因为Web服务是在一些通用协议(比如HTTP、XML、SOAP、WSDL和UDDI)的基础上建立的,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此它们允许在不同平台上、以不同语言编写的各种程序以基于标准的方式进行通信。这就是XML Web Service 体系结构的主要优点。
3.XML Web Service工作方式
XML Web Service通常定义为:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
l SOAP(Simple Object Access Protocol)
Web Service本身就是在实现应用程序间的通信,其通信协议是简单对象访问协议SOAP,这是一种基于XML的信息格式协议标准,用来在两个终端之间传递信息。使用SOAP可以进行远程过程调用(RPC),客户端将发出一条SOAP消息(包含可调用函数,以及要传送到该函数的参数),然后服务器将返回包含函数执行结果的消息。
l WSDL(Web Services Description Language)
WSDL表示Web Service描述语言,就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。
l UDDI(Universal Description, Discovery, and Integration)
UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
4.XML Web Service技术在资料共享中的应用
在我局与中山农业信息网的合作应用中,以我局为信息源,根据中山农业信息网所需的气象数据(如本地天气预报、天气预警信号、台风信息、全国各城市和世界各大城市的天气预报等资料),制作提供气象数据的接口,而中山农业信息网无需采用与我们一样的Web开发技术,只需通过调用本局提供的数据接口,就可以获取气象资料并可进行美化加工,其具体过程如下图:
中山气象台
Web服务器
中山农业信息网
用 户
用 户
用 户
SQL
数据库
Web服务平台
网站Web平台
代理DLL
图一 我局与中山农业信息网的合作应用
4.1 本地创建Xml Web Service
XML Web Service返回的数据类型最常用的有字符串、整数、日期、布尔值、小数等基本数据类型,但还可以返回一个数组或数组列表,返回DataSet对象,甚至返回一个类。下面将以本地天气预报的接口为例,在此实例中是以DateSet对象为返回类型,以下是文件Day5Service.asmx代码部分:
... ‘定义Day5Service类
<WebMethod(description:="未来五天天气预测(DataSet)")> Public Function GetDay5(aname as string, apwd as string) as DataSet ‘定义函数并声明返回类型为DataSet类
... ‘通过调用数据库获取数据,进行捆绑并返回
cmdSET.fill(dst,"Day5")
return dst
end function
...
应用文件(.asmx)创建后,则可用Internet Services Manager对Xml Web Service进行部署,然后利用Internet Explorer浏览器对此应用进行测试。待一切正常,则可对外发布此Web Service应用,完成本地Xml Web Service的创建。
4.2 远程调用Xml Web Service
调用Xml Web Service的过程主要是在客户端完成,其主要任务有:
(1)在客户端应用程序中添加对XML Web Service的Web引用,方法是发现您想要使用的XML Web Service
(2)为XML Web Service生成代理类
(3)在客户端应用程序中创建XML Web Service代理类的对象
(4)使用代理类对象来访问XML Web Service
其中,生成代理类的方法是从命令行提示符执行WSDL工具,语法是:
wsdl [options]{URL|Path}
创建代理类的源码后,把它编译到当前项目的程序集(独立的程序集),或者是编译到代理类自己的程序集,并在全局程序缓存中安装以供全局使用。
5.结束语
通过利用Xml Web Service技术,我局很好地为中山农业信息网远程提供气象数据,从而实现了在Internet网络中的资料共享。此外,作为新兴的Web应用的实现方式,Web Service会有很好的发展前景,在网络资料共享的应用中将会发挥更多更重要的作用。
参考文献:
1. Alex Ferrara & Mattbew MacDonald著,天宏工作室译,《.NET Web服务编程》,清华大学出版社。
2. (美)Stephen Walther著,马朝晖等译,《ASP.NET技术内幕》,机械工业出版社