檀 丁,李明峰,陶 虹,谭海权
(1.南京工业大学测绘学院,江苏南京210009;2.苏州工业园区格网信息科技有限公司,江苏苏州215021)
面向服务的3D WebGIS异构系统框架研究
檀 丁1,李明峰1,陶 虹2,谭海权2
(1.南京工业大学测绘学院,江苏南京210009;2.苏州工业园区格网信息科技有限公司,江苏苏州215021)
提出基于面向服务的架构体系,利用Web服务技术,解决构建3D WebGIS时选用分布式网络结构带来的数据共享及异构系统互操作等问题。并在研究面向服务架构(SOA)及Web服务的基础上,建立基于ArcGIS Server的3D WebGIS试验系统,验证SOA在3D WebGIS互操作中应用的可行性。
3D WebGIS;互操作;面向服务架构(SOA);Web服务
结合WebGIS与三维可视化技术形成的网络三维地理信息系统(3D WebGIS)已成为GIS的发展趋势。鉴于3D WebGIS的庞大体系及海量空间数据,为减轻服务器压力并提高效率,系统多采用分布式网络结构。但由此造成的数据形式多样性及分布系统间的差异性,即系统的异构,使得数据与功能的共享及互操作成为难点[1]。本文提出采用面向服务的架构体系,特别是利用Web服务,实现3D WebGIS异构系统间的数据及功能的共享与互操作。
1.分布式GIS的异构及缺陷
随着应用的复杂化,网络应用从最初的两层C/ S结构发展为多层B/S模式,同时,数据库与应用逻辑的分离,也使数据端压力减小。但由于系统复杂性不断增强,客户对Web服务端的访问频率猛增,单一服务器无法及时处理大量空间信息服务操作[2],因此产生了分布式网络结构。而将这种结构应用于GIS所形成的分布式GIS是指GIS数据和应用程序分散于多个服务器,从而克服了传统集中式系统易导致中心服务器资源紧张及响应迟缓的缺陷。但也带来了分布式GIS平台中的异构系统间互操作及数据集成与共享等问题。
作为比传统GIS系统更复杂的3D WebGIS系统,为了实现海量空间数据的均衡分布和复杂计算的分散式布局,理所当然采用了分布式网络结构。但同样面临平台中异构系统间的数据共享及互操作等难题。
2.异构GIS的互操作
对于采用分布式结构的3D WebGIS系统,分布于多个数据服务器的空间数据常采用不同的数据格式;分布式应用逻辑则需要使用分布式的对象模型;分散于不同服务器的子系统多采用紧耦合,因此造成了3D WebGIS平台内的数据及子系统间的异构。为了将分布于不同服务器的资源整合为一个完整的3D WebGIS系统,就要求既要实现异构空间数据的共享,又要完成数据、功能的互操作。
所谓互操作,是指不同功能单元间相互通信、执行程序、传递数据的能力[3]。传统意义上的GIS互操作包括空间数据的相互转换、开放应用程序接口(API)等[4]。但因数据格式的差异,数据转化势必造成信息丢失,而针对不同API编程,则工作量大、扩展性差。因此亟须研究一种新的模式,以实现3D WebGIS异构系统的互操作。
针对上述分布式系统在集成及互操作方面的缺陷,本文提出采用面向服务架构来解决资源共享及互操作问题。
1.面向服务架构(SOA)
面向服务架构(SOA)是一种松耦合、基于标准和独立于协议的分布式软件设计模型[5]。其目的是解决大型系统中不同模块、不同功能的相互调用问题,以提高系统开发过程中数据交换的灵活性、程序和数据的重用性及系统的扩展性[6]。
在此架构下,服务成为核心概念。SOA由一系列相互交互的服务组成[7],服务定义了一个与业务数据或业务功能有关的接口,且不依赖于特定技术或平台[8]。这种通过服务实现业务功能的方式具有跨平台、易扩展、可复用等特性。SOA结构(如图1所示)包括服务提供者、服务注册中心和服务请求者。服务提供者将服务的描述信息发布到服务注册中心,服务请求者则在注册中心查找、定位所需服务,并调用该服务。
图1 SOA结构图
2.基于SOA的Web服务
(1)Web服务及特性
Web服务作为SOA的一种具体实现方式,是封装成单个实体并发布到网络上供其他程序使用的功能集合。它提供一个与运行环境、程序语言无关的平台来实现网络应用的共享,并具有如下特性。
1)封装性:Web服务将服务的实现过程与服务接口分离,对于使用者,只需了解服务接口,不必追究其实现过程,具有良好的封装性。
2)互操作性:因采用SOA的体系结构,避免了不同协议间转换的问题。可供不同平台、不同语言的系统间调用。
3)松散耦合:因服务的实现与调用接口分离,因此对使用者而言,只要服务调用界面不发生改变,服务实现过程发生的变化,并不影响其使用[8]。
(2)Web服务实现互操作的关键技术
简单对象访问协议(SOAP)、Web服务描述语言(WSDL)以及统一描述、发现和集成协议(UDDI)[9]是Web服务的3大关键技术。
SOAP作为分布式环境下信息交换的轻量级协议,在服务请求者和服务提供者之间定义了一个通信协议[8]。建立在这些通信协议上的Web服务需要通过基于XML语法的WSDL进行描述。WSDL为服务提供了描述构建在不同协议或编码方式上的Web服务或Web服务中的方法[10]。而UDDI则是用来存储业务信息和发布服务的注册表,该注册表是一个关于所有注册的 Web服务的信息集合[10]。
Web服务为用户提供了一种标准化接口(如图2所示),即一种公认的统一接口。在实际应用中,这些公共接口是开发者根据接口规范开发的交互式组件,各系统通过这些组件来实现不同类型地理数据和地理处理的透明访问。由于这类接口具有统一形式,不同异构系统均能调用,因此异构系统间互操作可通过这一标准接口进行串联。
图2 基于Web服务公共接口的互操作
3D WebGIS相对于平面GIS系统,最大的特点在于三维数据的网络共享及操作。本文采用开放地理信息联盟(OGC)针对三维空间数据而提出的服务——网络三维模型服务(W3DS)进行三维数据的网络传递及展现。
1.网络三维模型服务(W3DS)与三维地图
OGC针对空间地理信息标准化及空间数据互操作制定了GIS Web服务框架。该框架包括网络地图服务(WMS)、网络地形服务(WTS)、网络要素服务(WFS)等。而网络三维模型服务(W3DS)则是对指定区域的三维地理数据和地理元素进行传递和展示。可通过W3DS提供的动态三维场景在客户端进行渲染并支持用户交互式的浏览。但仅用W3DS只能提供浏览,不能体现出地理信息。因此,为实现三维GIS功能,需整合WFS在内的其他GIS服务。
W3DS实现的是对已有三维模型数据的传递和展现,而更基础的则是3D WebGIS中三维模型的构建,即三维地图的创建。三维地图包含三维地形建模及三维建筑建模等。三维地形建模可采用数字高程模型(DEM)构造不规则三角网(TIN),以此方式建立的模型能逼真模拟出地形的起伏;三维建筑建模则可采用带有高程的平面数据直接按高程拉升或专业三维建模软件建模两种方式,最终将地形、建筑及小品数据整合为完整的三维地图,并通过W3DS发布成三维地图服务。
2.基于Web服务的3D WebGIS框架
针对以上研究,笔者提出构建基于Web服务的3层分布式结构的3DWebGIS系统框架,其结构(如图3所示)中含有系统客户端、服务层及空间数据库3层。
图3 基于Web服务的3D WebGIS架构
1)客户端主要实现三维空间数据的渲染及动态交互,以及对服务结果的表现。可为普通浏览器或特定的三维系统浏览平台。
2)服务层包括对三维数据库中模型的调用及相应的分析计算。根据SOA中指定的角色,需建立UDDI注册中心,对现有三维GIS服务进行发布和管理。通过WSDL动态绑定GIS服务,实现三维空间数据的传输和交互,并进行三维分析计算,将最终结果返回客户端。通过Web服务的方式实现三维异构系统间的数据及分析功能的共享和互操作。
3)数据库包含基础地理信息数据,以及三维地形、建筑模型和纹理数据等,为了实现三维分析功能,还存储了三维属性数据等。
用户通过客户端发送服务请求,Web服务器发回WSDL文件,描述服务接口。在此基础上,用户通过调用接口绑定GIS Web服务及三维GIS服务,并将服务结果以通用协议的形式返回客户端。客户端则根据返回的文件解析出结果并展示出来。
在研究了采用服务架构进行异构系统互操作的基础上,笔者应用Esri公司推出的基于SOA的服务端产品ArcGIS Server,开发了3D WebGIS试验系统(如图4所示)。
图4 基于ArcGIS Server的园区三维系统
以苏州工业园区内10 km2的TIN模型及正射影像图构造地形模型,并结合该区域内的三维建筑模型及其他地理数据作为数据层。客户端则选用支持三维浏览的ArcGIS Explorer浏览平台,以实现三维地图的漫游、缩放以及GIS分析结果的展示。
本系统通过采用面向服务的分布式结构,完成了三维数据的浏览显示,并实现了包括空间查询、断面分析、路径分析、属性查询等在内的空间分析功能。验证了面向服务的分布式3D WebGIS的可行性及其对异构系统的良好数据共享和互操作性。
通过具有典型SOA架构的ArcGIS Server部署3D WebGIS,不仅实现了三维数据的浏览,并能结合ArcGIS强大的分析功能,利用空间信息处理服务的方式,进行三维空间分析,从而真正实现GIS为决策服务。基于ArcGIS Server的试验系统表明,利用面向服务的分布式架构不仅能实现异构3DWebGIS的互操作,更能提供高效的三维数据浏览及空间分析功能。
[1] 张书亮,戚海峰,张亦鸣,等.空间互操作框架集成模式分析[J].地球信息科学,2006,8(4):88-95.
[2] 龚震宇,贾利民.一种分布式空间信息服务的互操作模型[J].交通运输系统工程与信息,2005,5(6): 62-67.
[3] 郭雷,方立东,陈天滋.基于Web服务的数字城市信息资源共享平台[J].计算机工程与设计,2005,26(3):627-633.
[4] 张明明,梁勇.基于Web Service的GIS互操作研究[J].计算机与现代化,2007(10):114-116.
[5] 邹滨,曾永年,董明辉,等.SOA理念下面向Web服务的网络空间数据共享模型研究[J].测绘科学,2008,33(5):106-108.
[6] 蒋许锋,李承鑫,王冬.基于SOA的城市道路桥梁巡查GIS系统的实现[J].城市勘察,2010(4):67-69.
[7] 李德仁,黄俊华,邵振峰.面向服务的数字城市共享平台框架的设计与实现[J].武汉大学学报:信息科学版,2008,33(9):881-885.
[8] 鲁喆.面向服务的水利GIS平台构建[D].南昌:南昌大学,2008.
[9] 唐桂文.基于数字地球平台的地理信息服务[D].北京:首都师范大学,2008.
[10] 易敏.面向服务架构(SOA)的空间信息服务研究[D].上海:华东师范大学,2008.
Research on the Framework of 3D WebGIS Heterogeneous Systems Based on Service-oriented Architecture
TAN Ding,LI Mingfeng,TAO Hong,TAN Haiquan
0494-0911(2011)10-0065-03
P208
B
2011-04-22
江苏省测绘局科研资助项目(JSCHKY200903);国土环境与灾害监测国家测绘局重点实验室开放基金资助项目(LEDM2010B05)
檀 丁(1987—),男,安徽安庆人,硕士生,主要研究方向为GIS及其三维可视化。