>> 基于CORBA的三维可视化GIS体系结构的研究
基于CORBA的三维可视化GIS体系结构的研究*
邓臻钰1,姚雪峰2,朱庆2
(武汉大学计算机学院,2.武汉大学测绘遥感信息工程国家重点实验室,湖北武汉 430079)
(本文发表在计算机工程2003年第22期,29(22):106-107)
摘要 本文通过分析近年来三维可视化GIS的体系结构和分布式计算技术的发展动态,探讨了在互联网时代三维可视化GIS在海量、复杂空间数据组织方面的技术发展,提出了基于CORBA规范的分布式三维可视化GIS体系结构,并详细阐述了异构系统平台上异种数据源间的交互、数据调度等一系列关键技术难题的解决方案,并在理论上给出了其可行性分析。
关键字: CORBA,异构平台,三维可视化GIS
CORBA-based Distributed 3D Visualization GIS
Abstract With the rapid development of 3D GIS (Geographic Information System) and distributed computing techniques in recent years, more and more new GIS architectures are proposed. However, when the 3D GIS data is expected to distribute to large extent and the processed data volume becomes very huge, the efficiency of the system becomes the bottleneck. This paper proposed a solution to solve it, called the CORBA-GIS. At first, a CORBA-based distributed 3D GIS architecture is designed, with which we can distribute the data on INTRANET or INTERNET. Secondly, several key techniques of the interoperation among heterogenous 3D GIS data sources based on different OS are presented.
Keywords: CORBA, Heterogenous Platform, 3D Visualization GIS
1、引言
三维城市模型通常用于表述一个城市的虚拟环境,在这个虚拟环境中,人们可以在数字空间中浏览与这个城市有关的大量环境与文化信息并与之交互,从而使得城市规划、管理决策、通讯系统的建设变得更加方便快捷 (Gruber and Wilmersdof, 1997; Molenaar, 1992; Zhu, et al., 2000)。以三维城市模型为主要内容的三维可视化GIS越来越引起人们的普遍关注,并日益成为三维GIS发展的主流之一。 随着三维可视化GIS的发展,其数据组织也经历了一个从文件系统到关系型数据库,进而到对象关系型数据库的发展过程。目前,由于文件系统对于建立小数据量的三维演示系统高效快捷,因此在短时间内是不可能完全被数据库系统所取代的;而关系型数据库的应用技术非常成熟,所以它仍然是当前主流的三维空间数据组织工具;近几年来,新兴的对象关系型数据库(例如:ORACLE 8.16)技术日益成熟,它为三维可视化GIS中的空间数据组织提供了强大的技术支持,其应用会愈加广泛。以上这些原因就决定了三维可视化GIS数据源异构的特点。与此同时,上述各种数据库系统所基于的操作系统平台也并非一致,它们可以基于 UNIX、Windows NT等多种厂家的不同操作系统平台,这又产生了异种数据源之间的平台异构性。因此,异构平台上诸多异种数据源间交互问题的实现成为今年来限制三维可视化GIS往分布式发展的重大障碍。近年来,随着三维可视化GIS所处理数据量的进一步增大,数据源范围的进一步拓宽,对基于网络的跨平台、统一、高效的分布式系统解决方案的需要越来越迫切。
但是三维可视化系统GIS有几个的几个重要的特点给其分布式实现带来了很大极大的困难: 首先,大范围无缝场景漫游的实现它对空间数据查询、数据提取效率的要求很颇高,且提取的数据量巨大,其中可能会涉及大量空间数据的远程调用。其次,三维可视化GIS在进行三维分析时的计算复杂且涉及的数据量大,这种基于大数据量的三维分析功能在单机客户端是难以达到满意的响应速度要求的。
针对以上情况,本文提出了一个基于CORBA的三维可视化GIS分布式实现的技术解决方案,其中囊括了数据源分布和分析计算任务分布的思想,交互操作能在某种程度上通过数据调度达到并行处理的效果,从而有效的利用了分布式网络中各台计算机的系统资源。文章首先介绍了这个分布式体系结构,系统调度机制,然后详细阐述了实现过程中的几个关键技术问题的解决方案, 并从理论上给出其可行性分析。
2、CORBA
从本质上讲,CORBA是一种结构,一种通用的对象请求代理体系结构。它把各种对象的操作和属性封装在不同的接口之中,通过对象请求代理(ORB)来调用接口中的操作,完成指定的功能(Vinoski , 1997; OMG TC Document, 2001)。CORBA为开发大型的分布式异构三维可视化GIS提供了独立于硬件平台、独立于计算机操作系统、独立于各种实现语言和独立于网络传送协议的平台,这对于集成各异构平台的异种空间数据源是至关重要的。并且,利用CORBA进行分布式异构系统开发的程序可以达到较高的效率,满足了三维城市可视化系统对空间数据查询和提取的要求。另外,CORBA的平台无关性实现了对象的跨平台引用,因此,开发人员可以在这个体系结构上容易地挂接其它三维可视化GIS系统,具有良好的可扩展性。
3、分布式三维城市可视化系统GIS的体系结构
目前GIS在分布式计算方面的应用范围很有限,基本上仅限于Web GIS中的使用,尤其是在异构空间数据库互联方面还处于起步阶段。本文提出的这个为三维可视化GIS服务的基于CORBA的分布式体系结构在整体上是一个三层的分布式体系结构(当然, 随着三维可视化GIS的发展,其功能部件的不断增多, 系统体系结构也可以变为多层,或n层结构),框架图示如下:

图12分布式三维可视化GIS体系结构
该分布式体系结构分为三层,分别是:客户端,中间服务层,数据源服务层。其中客户端是三维可视化GIS浏览、编辑系统和CORBA客户程序的封装;中间服务层包括事务服务器和空间分析服务器等。数据源服务层包括CORBA对象伺服程序和数据源服务器。 三维可视化GIS所处理的空间数据量很大(其中包括三维矢量数据,大量的属性数据(如纹理数据等), 大范围的数字高程模型(DEM)数据和数字正射影像(DOM)数据,这些数据对于一个小型的城市就可能达到上百个G之大), 在本文的分布式结构中将这些大量的空间数据分布到网络上的各个数据源节点上,因为各个数据源节点都是相对独立的,我们不仅可以将数据分布到各个节点,而且可以将系统的计算任务分布到各个节点。在中间服务层的统一管理调度下,实现一定的并行处理来提高系统效率。
3.1 客户端
客户端主要是指三维可视化漫游客户端和编辑客户端以及一个用于和服务器联系的客户机封装件(Client Wrapper)。
(1) 漫游/编辑客户端
漫游或编辑客户端是三维可视化GIS的可视化部件,它负责对三维场景的描绘和渲染,以及对三维空间数据的编辑操作,是直接与用户进行交互的部分,它向客户机封装件发出查询或编辑请求,从服务器提取结果数据进行显示或将编辑完的空间数据提交给服务器来更新数据源。
(2) 客户机封装件(Client Wrapper)
客户机封装件(Client Wrapper)是中间服务层CORBA对象的客户程序,用来与事务管理服务器和空间分析服务器进行通信。三维可视化GIS客户端则直接将这个Client Wrapper作为它唯一可见的数据源,漫游、交互、编辑等全部操作都通过这个Client Wrapper进行控制,这就将三维可视化GIS客户端与来自各异构平台的异种空间数据源隔离开来,实现了客户端统一的空间数据操作界面。
3.2中间服务层
中间服务层是整个系统中用于事务管理和进行三维分析计算任务管理的部件,它由事务管理服务器和三维分析服务器组成。
(1) 事务管理服务器
事务管理服务器既是Client Wrapper的服务程序又是数据源服务器CORBA对象的客户程序,它是客户端和数据源服务器的逻辑代理,这样的事务管理器可以根据三维可视化GIS的实现需要在体系结构设置多台,依靠用户制定的调度策略来分别处理客户的请求,在并发用户多的情况下可以缓解中间层的瓶颈问题。
(2)三维分析服务器
三维分析服务器的主要作用是将三维分析的计算任务进行细分,进而将其分布到网络上多台相关计算机上实现,通过三维分析服务器的调度达到合理利用系统资源的目的。
3.3数据源服务层
数据源服务层由服务器封装件(Server Wrapper),FA?ADE封装接口,数据源驱动程序接口(Driver)和原有数据源服务器组成。它是客户端的空间数据来源,也是一个功能独立的计算单元,它的任务不仅包括空间数据查询、提取,还承担了一定的三维分析计算任务。
(1)服务器封装件( Server Wrapper )
在功能上,服务器封装件( Server Wrapper )是封装数据源的数据操作接口方法的CORBA服务程序,它直接面向中间层和客户端,为其创建CORBA对象引用。
(2) FACADE封装接口
为了实现Server Wrapper与同种平台上空间数据源的多样性相隔离,我们在Server Wrapper和Driver之间定义了一个高层接口,采用FACADE模式(Gamma E. ,et al. ,1995)将特定于平台和数据源的代码全部封装到该接口中,为上层Server Wrapper提供了面向异种数据源实现接口的统一界面,从而降低了Server Wrapper实现的复杂度。
(3) 数据源驱动程序接口(Driver)
在各个数据源服务器端,体系结构中的Driver对于各种不同的空间数据源使用原有的数 据组织方式,它与各数据源直接进行交互,这意味着原有数据库系统数据组织方式的接口无需任何修改就可以直接添加到新体系结构中,这也是该体系结构可扩展性的一个方面。
(4) 原有数据源服务器
这是最终存储三维可视化GIS空间数据的地方。在三维可视化GIS中,原有数据源服务器包括: 文件系统数据源,数据库系统数据源,还可以加入数据仓库等多种形式的数据源服务器。
相应的请求处理流程为(以查询为例):
数据源服务层的Server Wrapper接收到查询请求后,调用相应FA?ADE封装里的具体函数,进而调用Driver 中的方法来实现数据源中空间数据的提取操作,然后将结果数据按照公共数据结构发送到事务服务器。
4.关键实现技术
基于CORBA规范的三维可视化GIS的实现涉及到GIS、分布式计算和计算机网络等多个领域,为了实现前文提出的体系结构,必须解决好三维可视化GIS的技术问题及基于CORBA规范的分布式计算模式中的关键问题。鉴于篇幅,仅就最为重要的几个关键问题给予详细阐述。
4.1 公共数据表示
对于城市三维可视化GIS来说,所使用操纵的空间三维数据类型包括:三维矢量数据,属性数据,DEM(Digital Elevation Model数字高层模型)数据,DOM(Digital OrthoImage Model,数字正设影像模型)数据。为了消除分布式三维可视化GIS中各各个本地空间数据库在空间数据模型和数据组织上的异构特性,必须在中间服务层定义一个抽象的、统一的空间数据模型,并按照该空间数据模型进行本地空间数据库的数据请求和数据传输,以达到空间数据库访问的透明性。
下面给出了三维点状地物、线状地物的公共数据结构的IDL接口定义示例。
module DCGIS{
。。。
struct Point2D;//Forward declaration
struct ENVELOPE3D;//Forward declaration
typedef unsigned long OID_TYPE;
typedef sequence<Point2D> Point2Dbunch;
struct PointData{//三维点状地物的数据结构
String UserID;
String FeatureName;
Point2Dbunch bottomPts;
float ptx; //anchor point
float pty; //anchor point
float ptz; //anchor point
ENVELOPE3D pbox;// Point Object’s Bounding Box
};
。。。
struct Point3D;//Forward declaration
typedef sequence<Point3D> Point3Dbunch;
struct LineData{//三维线状地物的数据结构
String UserID;
String FeatureName;
Point2Dbunch bottomPts;
Point3Dbunch linePts;
float colorR;//Line Color
float colorG;//Line Color
float colorB;//Line Color
};
。。。
}
4.2 事务管理调度机制
在三维可视化GIS中,事务管理调度机制主要是用于调度用户的查询、编辑事务等操作。事务管理调度机制的具体实现中需要维护一个数据源服务器的信息注册表,如下表1所示:
表1数据源服务器信息注册表

在进行全局事务分解时,事务管理服务器根据客户端查询提供的空间数据范围和类型在该查询信息注册表中进行查询,确定其具体涉及到的数据源节点,的持久CORBA对象名称,然后利用此名称调用目标数据源ServerWrapper的CORBA对象的接口方法,Server Wrapper再调用相应的FA?ADE封装里的具体函数,进而调用Driver 的方法提取数据源中的数据,最后将结果数据按公共数据结构发送给事务服务器。当事务服务器接收到各个数据源服务器返回的查询结果后将这些查询结果发送回客户端,完成一次查询工作。其流程如图3:

图3 事务服务器处理请求流图
4.3分布式计算的调度机制
为了合理的利用分布式系统中的计算机资源,三维可视化GIS客户端在进行三维分析时,将根据制定的标准决定是在三维分析服务器执行,或者直接由数据源服务器执行,其决策依据主要有三个,分别是数据量的大小、分析工作的复杂程度和需要远程调用的空间数据分布情况。
支持分布式调度的分析计算任务的定义:
设分析计算任务A,对分析数据集D {D1,D2,…Dn} (n>1, Di∩Dj = Φ(1≤i,j≤n))进行分析, 如果 A(D) = A(D1) + A(D2) +…+A(Dn) 则称A为可并行调度的分析任务。
对于决策支持的函数的定义:
设可并行调度分析任务 A,对分析数据集 D {D1,D2,…Dn} (n>1, Di∩Dj = Φ(1≤i,j≤n))进行分析,对应于分析数据集,其数据大小为{Q1,Q2,…Qn},分析任务的复杂度为O(f(Qi)) (f(x)为数据量变量的函数,为单调增函数), 网络传输时间设为数据量的函数 t(Qi) (t(x)为数据量变量的函数,为单调增函数), 给定阈值ф,则给出一个计算调度策略值的函数:
F(A(Di)) = a*t(Qi) + b*O(f(Qi))(1≤i≤n,a,b为常数)
0 < F(…) ≤ф, 则A在分析服务器上完成
ф < F(…) , 则 A 直接在服务器端执行
【其中a,b常数属于常数集合Ca {Ca1,Ca2,..Can}、Cb{Cb1,Cb2,…Cbn},如果网络带宽较低,则a参数的影响较大,可以将a 设置大于b,否则如果计算任务的复杂度为数据量的非线性函数时,可以将b设置大于a,因此,它们属于一个常数集合Ca,Cb,是特定于计算任务和带宽的经验数据集合】
调度分配的流程如下:
当客户端提交三维分析请求给三维分析服务器处理时,就将待分析的空间数据的数据类型、范围以及分析类型等信息提交给三维分析服务器,由服务器根据系统设定的判断标准和调度机制决定将分析任务分发到哪些具体的数据源节点上,或者直接在该三维分析服务器上执行,也可以将分析任务再分发给另外的三维分析服务器并行进行分析操作。
当各个分析单元(包括数据源节点计算单元)的分析计算完成后直接提交给客户端。其流程如图4所示:

图4 三维分析服务器请求处理流程
5、结论
基于CORBA的三维可视化GIS目前虽处于研究试验阶段,没有一个统一的标准和模式,但其相关理论和技术的研究会随着GIS和分布式计算技术的发展不断深入和完善,其应用水平会迅速提高。本文提出的基于CORBA的分布式三维可视化GIS体系结构,使三维可视化GIS能够更好的适应平台异构、数据源分布自治、网络协议各异的Internet下的分布式环境。当然,作为一个复杂系统工程,其中还存在着不足的地方,如事务服务器的并发问题,当用户数量增多时,虽然可以通过增加事务服务器的数量来减轻其负荷,但相应的数据一致性的处理难度也随之增大。另一方面,在已有基础上设计一个高效的并发控制算法将是我们下一步首要探索的挑战性问题。
参考文献
Gamma E., R. Helm, R. Johnson, and J. Vlissides, 1995, Design Patterns:Elements of Reusable Object-Oriented Software. Reading,MA: Addison-Wesley,121 p.。
Gruber M and Wilmersdof E., 1997, Urban Data Management - A Modern Approach,Computers , Environment and Urban System, 21(2):147-158。
Gruber M. ,1999, Managing Large 3D Urban Databases, 47th----Photogrametric Week,
(Dieter Fritsch and Rudi Spiller, editors), Wichmann Verlag, Germany, pp.341-349。
Kotz D,Gray R S.Mobile Agent and the Future of the Internet . ACM Operating System Review 1999,33(3) : 7~13。
Molenaar, M., 1992. "A topology for 3D vector maps", ITC Journal, No. 1, pp. 25-33。
OMG TC Document , 2001, The Common Object Request Broker: Architecture and Specification,No: 01.12.1,Revision 2.6。
Rikkers, R., Molenaar, M., 1994. "A query oriented implementation of a topologic data structure for 3-dimensional vector maps", International Journal of Geographical Information Systems, Vol. 8, No. 3, pp. 243-260。
Vinoski S.,1997, CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments,IEEE Communications Magazine, 35(2):(45-57)。
Zhu Qing, Li Deren, Gong Jianya,Xiong Hanjiang, 2000,THE INTEGRATED SPATIAL DATABASES OF GEOSTAR, In: International Archives of Photogrammetry and Remote Sensing , Vol. XXXIII, Part B4, p 1243 – 1246。
作者简介:
邓臻钰:武汉大学计算机学院研究生,主要研究方向是软件工程和GIS应用。
姚雪峰:武汉大学测绘遥感国家重点实验室研究生,主要研究方向是GIS理论及应用。
朱庆:武汉大学测绘遥感国家重点实验室教授,博士生导师,主要从事三维GIS理论及应用的研究。
联系方式:
邓臻钰:武汉大学计算机学院S002班,邮编:430079,Tel: 027-87882643, 13667297787
Email: ZhenYuDeng@263.net
姚雪峰:武汉大学测绘遥感国家重点实验室2000级,邮编:430079,Tel:027-87656827,13871430400
Email: XueFengYao@263.net
朱庆:武汉大学测绘遥感国家重点实验室,邮编:430079,Tel: 13807172583