10.2. 分布式网络GIS

随着计算机网络的发展,基于客户机/服务器体系结构,并在网络支持下的分布式系统结构已经成为地理信息系统的发展趋势。由于GIS的固有的特点,使得运行于网络上的分布式系统特别适合于构造较大规模的GIS应用,其应用表现在以下几个方面(张军海,2008):

(1)数据的分布:在地理信息系统中,主要数据是空间数据,由于数据生产和更新的要求,常常需要存放在空间上分离的计算机上。

(2)应用功能的分布:GIS的功能组成了由空间数据录入到输出的一个工作流程,不同的人员由于其关注的信息不同,需要不同的GIS功能服务对数据进行处理,将应用分布在网络上就可以解决该问题。

(3)外设共享:外设的分布是服务分布的一种,由于许多GIS外设较为昂贵,如高精度平板扫描仪,喷墨绘图仪,大幅面数字化仪等,而通过分布式系统,可以实现这些设备的共享。

(4)并行计算:在地理信息系统中,许多模型具有较高的时间复杂性,利用分布系统可以实现并行计算,缩短计算时间。

10.2.1. 分布式网络GIS概念

1.分布式系统

分布式系统(Distributed System)(朱海傧等,1997;张军海,2008)是指由一组具有自治功能的独立计算机经互联网连接而成的计算机系统,这些计算机相互协作,共同完成给定的计算任务。分布式系统的特点是强调资源、任务、功能和控制的全面分布。系统中的资源、任务和控制通常分布于物理上分散的若干机器(亦称结点)上,而各个结点经互联网连接,彼此通信,构成一个统一的计算机系统。

分布式系统的工作方式也是分布的,系统中各结点之间可根据两种原则进行分工,一种是把任务分解成多个可并行执行的子任务,分布给系统中各个结点协同完成,这种方式称为任务分布。另一种是把系统的总功能划分成若干子功能,分配给各个结点分别承担,这种方式称为功能分布。无论是任务分布还是功能分布,分布方案均可依处理内容动态地确定。在分布式系统控制下,各个结点能够比较均等地分担控制功能,独立地发挥自身的控制作用,但又能相互配合,在彼此通信协调的基础上实现系统的全局管理。

分布式系统较之于集中式系统(Centralized System)以及独立的微机系统,分布式系统具有以下优点(表10-1,表10-2)(张军海,2008):

表10-1 分布式系统的优势–与集中式系统比较

项目 描述
经济 多个微处理器提供了更好的性能/价格比
速度 一个分布式系统比大型机有更好的总体计算能力
固有的分布 一些应用系统需要运行于空间上分离的机器
可靠性 如果一台机器崩溃,整个系统还能够运行
增量发展 计算能力能够以很小的增量增长

表10-2 分布式系统的优势–与微机系统比较

项目 描述
数据共享 允许多个用户访问同一数据库
设备共享 允许多个用户共享昂贵的外设
通讯 使人与人之间的通讯变得简单,如电子邮件
灵活性 以最有效的方式将工作量分布在所有可用的机器上

在具有上述优势的同时,由于分布式系统的复杂性,对软件硬件提出了更高的要求,它也具有以下不足之处(表10-3)(张军海,2008):

表10-3 分布式系统的不足之处

项目 描述
软件 当前支持分布式系统的软件较少
网络 网络可能充满了或者引发其它的错误
安全性 容易使得需要保密的数据被访问

2.分布式网络GIS

分布式网络地理信息系统是建立在分布式计算环境下由一组分布式服务器协同为互联网客户提供地理信息服务的网络地理信息系统,是对传统的WebGIS功能的扩展(张贺,2007)。在传统网络地理信息系统的三层体系结构的业务逻辑层上增加了分布式的应用逻辑,所以它的服务器端是一个网络,至少是一个局域网。服务器不再访问一个集中数据库,而是访问分布式的数据库,但是数据和服务在服务器端的分布状况对Internet客户是透明的,用户不需要了解数据的分布状况。这样的系统具有很好的扩展性,能够提供更强大的功能和地理信息服务。建立分布式网络地理信息系统的目的是空间数据互操作和空间计算功能共享。

10.2.2. 分布式主要技术

1.分布式计算技术

随着网络技术的发展,分布式计算(Distributed Computing)成为影响当今计算机技术发展的关键技术力量。所谓分布式计算,是指借助计算机网络将分布在不同地点的计算实体(进程、对象或构件等)组织在一起,进行信息处理的一种方式。分布式计算的理想目标就是要实现分散对等的协同计算(Decentralized peer-to-peer collaborative computing),这也是网络技术发展的最理想目标。

OSF心CE和StjN/ONC+是代表90年代初分布计算技术发展水平的主流产品。其技术特点是:

(l)主要针对信息共享问题;

(2)采用常规的客户/服务器计算模型;

(3)应用程序设计界面(API)沿用传统的计算概念和设施(如过程调用概念和文件设施等);

(4)提供丰富的分布系统管理、服务和应用。

分布式计算平台(Distributed Computing Platform,DCP)提供一种标准通一讯机制,可用于在分布网络环境中交互工具和交互服务通讯。服务包括信息发布、程序调用、远程调用、数据通讯、透明文件访问和网络安全。

IT行业正向不同DCP之间的完全交互性方向上发展,这些DCP主要包括OLE/COM、CORBA、CDE和新生物Java。每个DCP都有它自己的优势和不足,都有一个交互性策略来满足不同的要求。商家们各自推出自己的平台去占领市场,与此同时,市场迫使他们为开发者提供在不同DCP间可进行交互性操作的方法。用户要获取这种交互性必须支付一定的费用,因为没有一个用户能仅仅通过一种DCP就可以实现他想要的所有性能。

为使网络DCP真正具有地理数据交互处理功能,OpenGIS委员会把OpenGIS作为“总体规范”。也就是说,虽然OpenGIS在开放地理数据模型和OpenGIS服务模型方面描述得相当详细,但它在编程语一言和DCP服务方面却描述得很笼统。由一个软件厂家为OLE/COM写的OGIS应用软件(中间软件或组件软件)必须能与其它厂家或在CORBA或Java环境中的积分器程序写的OGIS应用软件对话,也要能与为GlS数据库写接口的GIS一ComPliantC++语一言编写的OpenGIS软件对话。

为在DCP内部实现交互性,每个DCP都必须是一个“执行规范”,这个规范为OpenGIS的应用软件、中间软件和组件建立一个使用DCP服务器的标准方法,执行规范对开发者来说也很重要。但是如果开发者能严格执行规范的话,用户就不用再过多地考虑这些规范了。

2.分布式对象技术

分布式对象技术是在分布式环境下跨平台、跨语言的基于对象的分布式计算技术,它使得对象用户在使用对象时可以访问网络上任意有用的对象而不必知道该对象所处的位置。应该说分布式对象技术最关键的有三个部分对象界面、对象界面用一种通用的界面定义语言描述了对象所要完成的功能以及对属性,对象实现则采用某种方法、某种语言实现对象界面所定义的对象,同对象界面可以有不同的对象实现方法。对象请求代理则在对象请求和对象实间架起了一座桥梁。用户对对象的请求是用对象界面的方式来描述的,然后对象请求代理提出对象请求,对象请求代理根据用户的对象请求从对象实现取一个合适的对象实现供用户使用。对于用户来说,它根本不知道对象实现是在网络的哪个位置上,也不知道调用的是哪个对象实现。

对象是一个封闭的由代码和数据组成的集合体,它只能对自己的私有数严格规定。不同对象可以对相同的指令自行做出相应的操作,使整个程序更制。例如,当收到系统关闭的指令时,所有的对象都会对自己的数据做适处理。在分布式系统中,通过组合对象的方法可以大大提高系统的安全性和稳定性。

分布式对象技术的特点是(张军海,2008):

(l)主要针对异构环境下的互操作问题(包括数据和功能两个方面);

(2)将客户/服务器模型与面向对象技术结合在一起;

(3)提供面向对象的API;

(4)已经成为建立集成框架和软件构件标准的核心技术。

当今,基于对象的分布式计算的最具代表性的技术是对象管理集团的通用请求代理体系结构CORBA、微软的分布式对象构件模型DCOM和和SUN的JavaBeans。