GIS领域的体系结构和构件

按照应用目的,地理信息系统可以分为区域地理信息系统、专题地理信息系统以及地理信息系统工具,它们共同组成了GIS领域(Domain)。所谓领域,是指共享某种功能性(Functionality)的系统或应用程序的集合,换言之,领域表现了一组应用系统共性的方面。对于地理信息系统而言,其共享的功能就是对空间数据输入、管理、分析和表现,而这恰好是地理信息系统工具所提供的功能(图16-6)。

../../_images/img_112.png

图16-6:GIS领域

与具体应用领域相对应,对于领域,可以实施领域工程,得到领域模型,并建立领域特定的软件体系结构(DSSA, Domain-Specific Software Architecture)。DSSA是能够适应领域中多个系统的需求的一个高层次的设计,在开发具体应用系统时,可以利用DSSA将领域构件(Component)连接和组织起来,以支持软件复用,提高软件开发的效率和质量。

对于地理信息系统,实施领域工程,得到DSSA,不仅可以指导具体应用系统的开发,而且DSSA可以直接作为地理信息系统工具的软件体系结构。

地理信息系统的核心功能包括空间数据的输入、管理、分析以及表现,并且这些功能形成了一个比较完全的数据处理流程,此外考虑到与遥感以及全球定位系统的结合,形成如下的系统结构(图16-7)。该视图更多地体现了地理信息系统的业务逻辑,为了适用于具体的应用系统,该结构可以被特化——类似于面向对象中,从父类派生一个子类——形成更加具体的体系结构。

依赖于DSSA,可以将构件组装起来,形成具体的应用系统,基于构件的技术已经成为软件开发技术的主流,它从面向对象技术发展而来,是开发高效、低成本程序的重要实现途径。

为了能够通过组装以构造系统,构件必须能够互相合作,即具有互操作性,这是通过定义构件的接口规范来实现的。对于构件而言,除了互操作性之外,还要支持分布式的网络计算,即构件的互操作可以是基于异种平台的,其实现需要分布计算平台(DCP-Distributed Computing Paltform)的支持。

../../_images/img_23.png

图16-7:GIS领域体系结构:一个工作流视图

目前存在着多种构件技术标准,其中OMG(对象管理组织)的CORBA(公共请求对象代理体系结构-Common object request broker architecture)和Microsoft的OLE/COM/DCOM技术是其中两个主要的、被广泛采用的标准。

COBRA定义了一个带有开放软总线的分布式结构,在这一结构中,来自不同厂商、运行于不同操作系统上的对象,能够进行互操作。CORBA对象的互相通信通过对象请求代理(ORB,Object Request Broker)为中介,可以在多种流行网络通信协议上实现。接口描述语言(IDL,Interface Description Language)用于描述对象接口,它与语言无关,使得所有CORBA对象以一致的方式被描述。

Microsoft的DCOM(分布式对象构件模型,Distributed Component Object Model)技术是对原有的COM技术的扩展,以支持在网络上不同计算机的对象之间的通信。COM定义了接口的二进制标准,包括接口交互、管理对象及其资源等等。而DCOM通过增加网络协议的支持,使得对象可以通过网络互操作。DCOM技术很好的支持复用,位置独立,可扩展等,并且其执行性能较好,目前被基于Windows平台的软件开发商所广泛支持。

../../_images/img_32.jpg

图16-8:基于DCP的GIS体系结构和构件:一个实现视图[OpenGIS Consortium]

对于GIS软件开发,构件技术带来的除了实现复用、支持分布的互操作外,还具有以下两个方面的优势 [4]_

1)数据是GIS中最为重要的部分,目前各个软件数据格式不同,不便于共享和保护用户已有投资,构件技术通过互操作的支持可以实现数据共享;

2)地理信息系统功能的涵盖范围非常广泛,包括图形操作、图像处理、地图制图、数据库管理、投影变换等等,它们涉及不同的专业领域。利用构件技术,可以将不同专业领域的具体功能实现为构件,组装形成软件系统,避免了需要同时学习多个专业领域的状况。

图16-8给出了一个GIS体系结构以及构件的概念模型,在该模型中,体系结构具有多个“插槽”,而构件是“可插入(Plugable)”的,这种类似于计算机主板的结构,通过DCP的支持,依照图16-7中所描述的工作流结构,可以很容易的实现跨平台的地理信息系统软件。