Hopes

Start Here..

 

基于Web Services和.NET 技术的新一代WebGIS研究

基于Web Services和.NET 技术的新一代WebGIS研究

[日期:2004-12-19]来源:  作者:朱江、宋关福、钟耳顺、张继南、李伟顾、胡中南[字体:  ]

[摘要]本文分析了当前主流Web GIS中普遍存在的问题,并基于Web Service和.NET技术,提出了新一代的网络地理信息系统技术框架——面向服务的Web GIS软件平台框架,该框架体现了“服务即是软件,软件即是服务”的全新理念。本文最后介绍了基于Web Service和.NET技术的新一代WebGIS平台—SuperMap IS.NET的设计与实现。

关键词:面向服务,地理信息系统,WebGIS,.NET,Web Service

1.引言

WebGIS是Internet技术应用于GIS开发的产物,GIS通过WWW功能得以扩展,真正成为一种大众的使用工具[1]。经过短短数年,万维网地理信息系统(WebGIS)技术取得了快速发展,其应用也扩展到GIS应用领域的各个方面,成为GIS软件技术的重要的组成部分。随着行业应用逐步深入,广大用户对WebGIS技术发展提出了更高的要求,尤其在海量空间信息管理和发布、 超大用户群并发访问、二次开发能力以及异构系统互操作等方面提出了更高的要求。但由于WebGIS实现技术的一些限制和GIS本身的一些特点, 当前的WebGIS软件技术中仍存在一些局限:

(1)并发访问能力不适应日益扩大的系统规模。由于GIS应用涉及数据量大,处理复杂,在服务器端需要实现大量的业务逻辑,加重了服务器端的负担,因此,并发访问能力和响应速度一直是WebGIS软件的主要改进方向。此前多数WebGIS产品的二次开发工作通常基于解释执行的脚本语言进行,更在一定程度上降低了客户端访问的效率。

(2)系统的异构兼容性不足。不管是使用了微软的DCOM、OMG的CORBA或Java RMI技术,都需要统一的运行平台提供基本的网络服务和系统服务。服务的客户端与系统提供的服务本身之间必须进行紧密耦合,不同平台的系统进行集成需要进行复杂的接口交互,系统的集成和维护代价很大。

(3)开发、调试和维护方法复杂。Web GIS的开发需要不同的开发语言和开发工具,目前WebGIS的开发语言具有单一性,这些语言特性和系统思想差异性很大,Web应用开发人员需要熟练掌握多种开发语言,系统开发、调试和维护难度大。

为解决WebGIS软件上述问题,本文基于Web Service技术和.NET技术,提出了构建面向服务的新一代WebGIS软件体系框架。

2.WebService和.NET 新技术

Web Service是Internet分布式计算环境中提供基础功能的编程模块(网络组件),Web Service具有的开放通讯标准和强调互操作的特点已经使其成为异构系统集成的平台和主要手段。尽管不同的组织和机构对于Web service的定义略有不同,但具有共同点:

◆ Web Service通过标准协议向网络程序提供一定的功能,通常采用的标准协议是SOAP(Simple Object Access Protocol )。

◆ Web Service使用WSDL(Web Services Description Language)详细的描述其接口,用户使用WSDL这个文档和Web Service进行交互。

◆ Web Service需要注册到UUDI注册中心(Universal Discovery Description and Integration),便于潜在用户查询,发现和使用。

Gartner Group在研究了所有IT主流时尚技术的发展道路后,作出一个抽象模型(图1)。Y轴表示流行技术受关的注程度,而X轴则表示技术的应用的成熟度。这个模型表明Web Service正在受到业界的广泛关注,在未来的几年内将逐步成为网络分布式计算的潮流。


图1 . IT主流技术的发展抽象模型[2]
Figure1. The abstract model of IT mainstream

2002年2月微软发布了.NET框架(.NET Framework,,图2)的通用运行库(CLR, Common Language Runtime),标志着.NET时代的到来。.NET框架是软件集成平台错误!未找到引用源。,通用运行库和XML Web Service是其重要的两大核心技术,通用运行库用于集成单一操作系统内的应用软件,而Web Service可以集成Internet级别的软件。CLR和Web Service的核心思想都是可扩展的元数据和语义高度抽象为基础,分离组件接口和物理实现,使得运行时进行组件的相互调用和集成。
在图2所描述.NET的框架体系中,.NET Runtime提供了所有.NET程序和服务的通用平台,不管服务器,个人计算机,移动设备还是消费电子设备,.NET Runtime抽象了这些设备的共性,为应用层提供了一致的用户接口,屏蔽了不同硬件之间的差异性。同时也解决了开发语言统一的难题,不同语言(C#,VB.NET等)都可以统一到IL(Intermediate Language)。


图2 . Microsoft .NET的体系框架
Figure2.The framework of Microsoft .NET

3.新一代Web GIS技术框架

基于Web Service和.NET技术,笔者提出新一代Web GIS技术框架——面向服务的网络地理信息平台框架(图3)。在新的框架中,软件以服务的方式提供使用,服务即是软件,软件即是服务。面向服务的网络地理信息平台框架是一个动态性的、分布式和面向服务的系统框架。组件是整个架构的核心,它们使用和提供各种可以被发现的服务。每个组件是可管理的、可重用功能的逻辑单元。
架构的核心被划分成六个主要的服务类别:基于专业GIS组件的地图服务和空间分析服务,网络通讯服务,系统配置服务,容器服务/应用服务,群集服务,Web服务、可视化网络控件服务,远程管理服务。


图3 . 面向服务的网络地理信息平台框架
Figure3. The framework of service-oriented WebGIS

在新一代Web GIS的技术框架中,专业GIS组件、地图服务/空间分析引擎组件、网络通讯组件,作为整个框架的基石,为网络地理信息服务器提供了分布式计算能力和基于地图运算的地图服务/空间分析引擎能力,地理信息服务器是框架的核心和枢纽,根据请求负责地图服务/空间分析引擎的调度。GIS Web Service组件,GIS Web Controls控件以及其他实用Web应用程序依赖于地理信息服务器提供的服务,是和用户交互的UI界面和编程接口,是二次开发的基础。

地图服务/空间分析引擎是基于契约设计的引擎颗粒级别的.NET组件,它对GIS组件进行了功能封装和重组,是网络应用程序的可重用高级组件,具有元数据描述信息,可以实现灵活配置和动态加载。

网络通讯组件基于.NET Remoting技术构建,可以支持Tcp协议和Http协议,实现Web服务器和专业应用服务器之间的消息交换,简单的远程调用机制、可序列化的远程对象简化了分布式计算模式,克服了DCOM、CORBA复杂的调用机制。

地理信息服务器是地图服务/空间分析引擎组件和网络通讯组件的宿主,同时它发布了地图服务,空间分析服务和远程管理服务等.NET Remoting远程对象。

集群服务在一组计算机上运行相同的软件并虚拟成一台主机系统为客户端与应用提供服务。通过群集可以实现负载能力的成比例提高,同时还可以减少单点失效的危险,提高系统的稳定性和可维护性,使计算机实现单机无法实现的容错和负载均衡。

 GIS Web Service是面向空间信息处理的Web Service,其主要功能包括空间信息的管理、查询、空间分析以及输出最后处理结果。地图服务,地名查找服务,路由服务就是典型的GIS Web Service。GIS Web Services作为向互联网提供GIS服务的网络组件,在客户应用程序和空间数据处理内部系统之间起到了桥梁作用,向各种网络应用程序提供了统一编程接口。

可视化网络控件是网络快速应用程序开发(RAD)的基本元素,包括了地图网络控件,鹰眼网络控件,图例网络控件和常用工具栏网络控件等,这些网络控件相互关联和协作,在可视化开发环境中,拖放式的编程模式使得二次开发的难度降到最低点。

4.新一代Web GIS设计与实现—SuperMap IS.NET

基于以上新一代WebGIS技术框架,笔者设计并开发了基于Web Service和.NET技术的新一代网络地理信息平台—SuperMap IS.NET。SuperMap IS.NET继承了SuperMap IS的所有功能,基于新的框架,采用C#.NET全部重写。

SuperMap IS.NET由应用服务器(SuperMap AppServer)、Web服务(SuperMap WebServices)和Web控件(SuperMap WebControls)等组件构成。

为提高性能,SuperMap AppServer被设计为运行在Web服务器(IIS)之外应用服务器,作为独立进程运行在Web服务器本机或者其他服务器上,实现了物理上的分离。由于应用服务运行于Web服务器之外,可以独立控制地图数据的处理和业务规则的实现,在性能和功能上可以达到较好的效果。在这种方式下,使用HTML将客户端的请求传给Web服务器,而Web服务器则通过.NET的远程访问技术和SuperMap IS应用服务器交互,应用服务器承担了所有的查询、计算工作,将结果构建成远程对象反馈给Web服务器,再由Web服务器将分析处理结果对象生成HTML文档/XML文档传给客户端浏览器。地理信息服务服务器是一个可配置的容器服务程序,它可以配置不同的地图服务和空间分析服务和网络通讯组件。

SuperMap Web Service和SuperMap Web Controls是在SuperMap AppServer 基础上封装构建的。SuperMap Web Service包含:MapService提供在线交互式地图服务,AnalystService提供空间分析服务,CatalogService提供空间数据目录服务等。SuperMap Web Service的 优点体现如下:

(1)封装性。SuperMap WebServices封装了地理空间数据访问、处理和分析功能,用WSDL描述GIS功能,为服务使用者提供统一的调用接口,服务使用者无需了解也无法了解服务提供者的物理数据组织结构和功能实现方式,有利于保证数据的安全和系统的稳定性。

(2)接口一致性和松散耦合性。允许异构系统以相同的方式进行互操作。不同系统不需要统一的运行平台支持,可以使用不同开发语言(C++, Java, C#等)和开发工具调用SuperMap WebServices提供的功能。各个系统运行在不同的操作系统平台,具有良好的可定制能力和互操作性。用户系统和SuperMap IS平台松散耦合,系统升级和平台迁移互不影响,解决了DOCM,CORBA等分布式计算技术的紧密耦合性带来系统维护代价大的问题。

(3)网络级复用性。SuperMap WebServices是Internet级地理信息服务应用构件,是可重用的可编程单元,用户网络程序可以直接通过Internet访问GIS功能。

SuperMap WebControls 则是SuperMap IS.NET中提供Web应用程序的服务器端控件,提供了更直观便捷的Web应用开发工具,具有以下特点:

(1)支持所见即所得的设计时呈现。SuperMap WebControls具有友好的用户操作界面,继承了桌面程序控件的优点,使得网络程序开发实现可视化设计,所见即所得,网络应用程序在设计时和运行时达到视觉效果上的统一(图4)。提供设计式的地图显示效果可以使得界面设计人员更加容易地设计出符合最终用户操作习惯的友好界面,从心理学的角度来看,尽早的看到系统运行的效果有助于提高系统开发人员的创造激情和把握系统全局的能力。

(2)支持多语言交互。SuperMap WebControls采用专门为.NET设计的C#开发语言编写,编译生成中间代码IL (Intermediate Language), 对任何.NET开发语言(C#,VB.NET,VC++.NET等)提供相同的编程模式和用户接口。


图4. SupeMap Web Control设计时(左)呈现和运行时呈现比较(右)
Figure 4. Comparison between design-time (left) and run-time (right) of SuperMap Web Controls

 SuperMap IS.NET提供了快速应用开发的方法和能力。在图4范例中,使用SuperMap IS Web Controls库中的MapControl, LayerControl, OverviewControl,和ToolBarsControl轻松构建了一个面向地图的示范Web应用,通过它们之间的关联设置,编写简单代码就可以实现交互式电子地图的功能,在此基础上,二次开发可以实现基于交互式电子地图的高级应用功能。

5.结语

基于Web Service和.NET技术的Web GIS技术平台框架,具有良好的封装性、松散耦合性、网络级复用性,支持设计时所见即所得、多种语言交互、异构系统互操作等,适合面向网络服务的快速应用开发,由于其体系结构的优越性,必将成为未来WebGIS应用开发的主流技术。

参考文献:

[1]宋关福等,WebGIS--基于Internet的地理信息系统,中国图像图形学报,1998年第3期;
[2]柴晓路,架构Web Service:什么是Web服务?
http://www-900.ibm.com/developerWorks/cn/webservices/ws-wsar/part2/index.shtml
[3]Don Box, Chris Sells . Essential .NET, Volume 1: The Common Language Runtime. Addison Wesley. 2002.11。

作者简介:
朱江,男 (1978 - ),汉族,浙江省永嘉县人,中国科学院地理科学与资源研究所地图学与地理信息系统专业博士生,研究方向为网络地理信息系统技术,从事网络地理信息系统软件研究与开发工作。

posted on 2012-06-19 16:42 ** 阅读(324) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

你好!

常用链接

留言簿(2)

随笔档案

文章分类

文章档案

新闻档案

相册

收藏夹

C#学习

友情链接

搜索

最新评论

阅读排行榜

评论排行榜