时间:2024-07-28
江啸,史浩山,陈丁剑
GIS(Geographic Information System,地理信息系统)是利用电子计算机以及外部设备采集、存储、描述和分析地理信息的系统[1]。随着互联网的发展,Web GIS[2]为用户提供了更加便利的地理信息服务。相比桌面GIS软件,Web GIS存在以下诸多优点:(1)有利于信息共享。用户可以在任何时间和地点对服务器进行访问,扩大了数据的使用范围和利用效率;(2)与平台无关性。无论客户端/服务器是何种机器,用户都可以对Web GIS服务器进行访问,实现远程异构数据的共享;(3)系统成本降低。Web GIS利用通用的浏览器进行信息发布,这样就降低了用户的经济负担,同时也使得客户端不需要维护,减少了系统的维护费用。
传统的Web GIS系统一般具有以下几个结构层次:用于提供GIS数据的数据服务器、提供GIS数据获取与处理的GIS服务层、用于实现业务功能并与客户端及GIS服务器交互的Web服务层以及系统的客户端。
客户端:客户端通常是指在广域网或者局域网内的客户端程序,比如IE,Firefox,Netscape,Mozilla等,用户在界面(网页)上发出服务请求,此时客户端程序通过HTTP或者TCP/IP协议与服务器建立通信,将请求传递给适当的服务器,最终将服务器返回的结果显示在界面(网页)上。
GIS服务层:GIS服务层是实现GIS功能的主要场所,承载着所有GIS数据的处理任务,它可以从Web服务层接收GIS请求,并对其进行处理,最终将处理的结果返回给客户端。
Web服务层:Web服务层介于客户端和GIS服务层之间,将应用程序通过Web服务器(IIS)发布到网络中,这样客户端就可以通过访问地址直接与系统(网站)进行交互,传递客户端请求并获取服务端提供的结果。
数据服务层:数据服务层主要储存系统所需的数据,包括空间信息数据,属性信息数据以及业务信息数据。
可以看到,传统Web GIS系统是基于瘦客户端的实现的,用户所有的请求必须通过服务器端响应,处理完成后将结果返回到客户端。然而在电力系统中,当客户端和服务端数据交换较大,数据更新较多,尤其是刷新实时数据时,客户端浏览器会向服务器提交整个网页并白屏等待服务器的响应,然后重新解析整个页面并实现数据更新。客户端响应比较缓慢,从而影响用户体验。针对这一致命缺点,本文提出一种胖客户端的Web GIS实现方案,开发出ActiveX控件,通过Web Service将地图文件下载到客户端本地,使用ActiveX控件提供的接口打开地图,把数据交互,更新等功能封装在ActiveX控件中。客户端在浏览,缩放地图时实际上是操作本地文件而不需要与服务端进行交互。查看电力设备历史数据,实时数据时,ActiveX控件通过服务端提供的Web Service获取数据然后显示出来。通过这样的实现方案,用户不管在普通的浏览地图还是查看电力设备的台帐信息以及监控实时数据时都有更为流畅的体验。
本系统实现的基本思路是将地图的显示,浏览,以及电力设备的历史数据和实时数据显示等功能封装在ActiveX控件中实现,使用Web Service发布和获取工程数据,包括下载地图文件,获取历史数据和实时数据等。客户端使用本系统时先安装ActiveX控件,然后可以打开地图,进行各种操作。
ActiveX控件[3]以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB应用程序中。一个典型的ActiveX控件包括设计时和运行时的用户界面,唯一的IDispatch接口定义控件的方法和属性,唯一的IConnectionPoint接口用于控件可引发的事件。并且ActiveX脚本支持最常用脚本语言如JavaScript。
本系统ActiveX控件是基于SuperMap提供的控件库Objects进行的二次开发。SuperMap Objects是以COM/ActiveX技术规范为基础的全组件式GIS,总共包括十二个控件,其中包含两个核心控件:工作空间控件和地图控件。SuperWorkspace控件主要完成数据的组织、管理、处理,包括打开、关闭、新建、保存工作空间文件(*.smw),新建、打开数据源文件(*.sdb),修复、压缩数据源文件,字体文件的载入,卸载等等。SuperMap控件用于显示地图、地图图层管理、地图放大、缩小以及其他与地图有关的操作。ActiveX控件使用VS2008开发工具,C#编程语言进行开发,封装一系列接口供JavaScript脚本调用以实现相应的功能。
(1)打开/关闭工程:通过使用SuperMap Objects提供的SuperWorkspace控件来实现。调用SuperWorkspace控件提供的SuperWorkspace.Open()方法打开工作空间文件(*.smw),在ActiveX控件界面上放置树形控件Treeview以显示当前工作空间中地图列表。双击某一个地图名则在SuperMap控件打开对应的地图。调用SuperWorkspace控件提供的SuperWorkspace.Close()方法关闭工程,释放相应的资源。
(2)地图的显示、浏览和放大缩小等:在ActiveX控件界面上放置SuperMap控件以显示地图。地图的浏览、放大缩小则调用SuperMap提供的相应接口实现。
(3)设备台帐信息[4]查询:查看电力设备的台帐信息,主要包括每个设备的基本规范,技术参数,附属设备、缺陷、变更等等。设备台帐信息存储在服务器历史数据库中,通过查询历史数据库获取对应设备的台帐信息,显示在界面上。
(4)查看实时数据:查看每个设备的电压值,电流值等以便工程人员进行监测和控制。实时数据通过电力监控系统的实时数据代理获取。通过创建一个实时数据代理,调用代理的数据访问口ResourceDescription get_values(ResourceID resource,PropertySequence properties)获取实时数据,显示在地图上面,并且以一定的频率进行刷新。
(5)设备定位功能:在地图上定位到想要查找的某个设备,并高亮显示。当地图较大,电力设备较多时,手动查找某个设备的位置可能是比较困难的,提供设备定位功能方便工程人员定位特定的电力设备。
从表面上看,Web Service[5]就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。
本系统中Web Service的主要应用:
(1)传送地图文件:客户端使用浏览器浏览WebGIS页面之前本地文件系统是没有地图文件的,本系统在服务器端使用Web Service发布Web服务,将服务器端的地图文件转化为字节流,提供一个发送文件的接口。ActiveX控件中调用Web服务,接收字节流,还原成为地图文件。
(2)获取工程数据:工程数据主要是设备单元实时数据和历史数据。ActiveX控件提供的功能中需要用到实时数据和历史数据。通过在服务端发布提供查询历史数据和实时数据的接口,在ActiveX控件调用相应的接口获取数据,完成相应功能。
本文介绍了一种基于ActiveX和Web Service的电力系统WebGIS的设计与实现方案,相对于传统的WebGIS开发方式,本文提出了一种胖客户端的实现方案,大大减轻了服务端的负载,客户端也能获得良好的使用效果。
[1]李轩.地理信息系统的设计、实现与发展[M].中国新技术新产品,2009/21.
[2]项彩虹.基于ActiveX和WebService的WebGIS分布式实现架构.论文网,2006-05-01.
[3]王小正.ActiveX控件在B/S结构题库系统开发中的应用[J].电脑知识与技术,2008/S2.
[4]李毅强.电力自动化系统控制分析[J].中小企业管理与科技(下旬刊)2009/10.
[5]徐建琳.基于Web服务的客户关系管理系统[J].计算机工程,2009/19.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!