XML Web 解决水库监测信息发布难题

口 王小军


摘 要 XML Web服务系统是一种全新的分布式开发技术,用户不管使用什么样的操作平台,都可以实现对水库监测信息系统的访问。它不是针对特定的计算机或特定的服务器,而是面向整个Internet的。由于采用标准的XML数据交换技术,使Web Service服务器程序可以位于Internet或Intranet上的任何位置,也可采用任意的实现技术,客户端也可以采用任意的技术实现。
关键词 分布式系统 XML Web服务系统 水库信息


  一、XML Web服务系统的特点

  随着计算机及通信技术的发展,流域查询系统和水库自动监测的信息采集、处理及发布已完成手工方式向自动方式的转变。在水库监测系统中数据源(传感器)、存储与处理设备(服务器)、发布设备(工作站)的物理和逻辑分离,致使系统软件结构一般都采用分布式结构,如图1。其中,传感器现场采集各类监测数据,数据通信设备传输数据到中心站,数据库服务器接收并存储数据,应用服务器完成数据分析、结果显示和发布等工作。应用服务器要想完成这些工作,一般要通过C/S结构或者B/S结构实现,而这两种结构都有一定的不足。
图1 典型水库监测系统结构

  对C/S结构而言,目前对分布式应用程序架构支持的技术包括:Microsoft的分布式组件对象模型DCOM、Object Management Group的公共请求代理程序体系结构CORBA、SUN的远程方法调用RMI。它们都是执行效率高、安全性高的分布式技术,但都与当前开放互联的信息技术发展不相适应,体现在以下几点:

  ①三种技术开发的系统之间无互操作性。
  ②这些技术所使用的通信协议往往因为防火墙的设置而受阻。
  ③采取二进制通信协议且编码方式各异,当调用请求被转移时无法正常实现服务请求。
  ④这些技术是紧耦合系统,服务器端和客户端必须用相同的技术实现。换句话说,就是在系统内得到的数据及处理结果,只能在系统内使用,极大地限制了资源的共享。

  而对B/S结构而言,访问者获得的内容取决于Web网站提供的内容,无法对其实现“再开发”。

  基于以上原因以及.Net技术的出现,水库监测软件又多了一项新技术——XML Web服务系统。采用XML Web服务系统实现水库监测数据发布有以下优点:

  ①实现异构平台的无缝衔接。通过XML Web发布水库监测信息,用户包括水行政主管部门或其他想要使用该服务的部门,不管使用什么样的操作平台,都能对这些信息进行访问,实现资源利用的最大化。
  ②实现更广泛的软件复用。各种功能构件位于服务端,用户可随时调用,同时Web服务还能引用其他Web服务的方法,实现大范围的软件利用。
  ③无障碍的通信能力。由于XML Web服务系统是使用基于XML的SOAP协议来表示数据和调用请求的,并且用HTTP来传递这些XML格式的数据,而HTTP使用的80端口一般不会被防火墙关闭,保证了通信的畅通。

  二、XML Web服务系统的结构

  XML Web服务系统是一种编程模型,它提供在可缩放的、松耦合的、非特定平台的环境下交换信息的能力。它采用了标准的、跨语言的消息传递通信机制。该系统适应Internet技术的发展,Visual Studio.Net下分布式应用系统是由各种信息和应用程序松散地连接而形成的Web模型,这些信息和应用程序可驻留在种类繁多的硬件平台上。XML Web服务系统是提供特定功能元素(如应用程序逻辑)的可编程实体,任何数量的、完全不同的系统都可以用Internet标准(如XML和HTTP)进行访问。XML Web服务系统在很大程度上依赖于XML和其他Internet标准,其创建的支持应用程序互操作性的基础结构可以解决许多以前无法解决的问题。

  XML Web服务系统既可以在内部由单个应用程序使用,也可通过Internet以供任何数量的应用程序使用。由于可以通过标准接口访问,因此XML Web服务系统可使异类系统能够作为单个计算网络协同运行。

  XML Web服务包括四个组件:

  ①XML Web服务目录:提供中心位置存储与服务相关的发布信息。此目录还可用来搜索其他XML Web服务。UDDI(统一描述、发现与集成规范)为发布相关信息定义了指导原则。
  ②XML Web服务发现:使用此程序客户端使用WSDL定位描述XML Web服务的文档,发现程序可以使客户端知道存在的XML Web服务并知道某个特定的XML Web服务的位置。

  ③XML Web服务描述:此组件提供描述XML Web中的操作,XML Web服务描述是定义XML Web服务能够理解的信息格式的XML文档。
  ④XML Web服务报文格式:为了实现不同的系统间进行通信,XML Web服务使用开放的报文格式,能够被支持公共Web标准的系统理解的协议HTTP和SOAP。

  XML Web服务基础架构如图2。

图2 XWL Web 服务基础架构

  三、一个使用XML Wed服务系统实现水库监测信息发布的示例

  XML Web实现一个“ShowSW”方法,它从数据库中获取“水情表”的值并返回一个数据集。在Microsoft Studio.Net中创建服务端,生成一个XML Web服务程序框架。

  [WebMethod]
  public DataSet ShowSW(){
  SqlConnection con=new
  SqlConnection("server=localhost; uid=sa;password=;database=水库”)
  string sStr;
  sStr=-"select*from水位表”;
  SqlDataAdapter da=new Sql-DataAdapter(sStr,con);
  DataSet sDS:new DataSet();
  Da.Fill(sDS,"Customers'');
  return sDS;
  }

  客户端可以在各种平台上用任意的语言实现,本例用VC#实现客户端,Microsoft Studio.Net中建立VC#新项目名为“VCWebTest”在客户端添加了对XML Web服务的引用,系统自动创建了代理类并存放于Servicel.wsdl文件。客户端程序将调用服务器端的"ShowSW"方法,获取“水位表”中的数据在列表框中显示。

  private localhost.Servieel service;//定义对象
  private void buuoll_Click (object sender, System. EventArgs e){
  service=new localhost.Servicel();//实例化对象
  DataSet myset=service.ShowSW();//调用对象的方法
  DataTable custTable=myset.Tables ["水位表"];
  …//获得数据集后的操作略
  }

  XML Web服务系统构建的是一个松耦合的分布式应用系统,不要求服务器端与客户端使用相同的开发结构;同时该系统具有良好的封装性,只公开其服务,但隐藏其实现细节;XML Web服务系统使用了标准的协议规范,真正实现了平台和语言的跨越。因此,应用XML Web服务系统来实现水库监测信息发布必将对水库监测信息资源的利用和共享产生巨大的作用。 ■

(作者单位:贵州省科学院新技术研究所)
责任编辑 唐 瑾