1.3.3 GIS模型重用
GIS应用系统的应用分析功能的不足,已经直接影响到GIS应用的进一步推广和深化。如何有效地重用已开发的各类专业应用模型,同时在今后的模型开发中,如何考虑到模型与GIS系统的易重用、易集成性,以提高GIS应用系统的开发效率,缩短开发周期,已成为GIS应用系统开发工作者广泛面临的问题。
1.源代码方式重用
在重用源代码形式的模型时,必须利用GIS系统的二次开发语言或其他编程语言,将已开发好的专业模型的源代码进行改写重用,使其从语言到数据结构与GIS系统完全兼容,成为GIS系统的整体的一部分。这种重用方式非常多见,并且将一直存在,它可以保证GIS系统与模型在数据结构、数据处理等方面的一致性。但这种方式只能算是最低级的重用方式,其缺点非常明显:一是GIS开发者必须下很大工夫读懂模型的源代码,二是在改写重用过程中常常会出错。
2.函数库方式重用
对于以库函数的形式保存在函数库中的应用模型,GIS开发者可以通过调用库函数的方式进行模型重用。函数库包括静态链接库和动态连接库两种,二者的区别在于,动态连接不是在连接生成可执行文件时把库函数链入应用程序,而是在程序运行中需要的时候才连接。函数库方式的优点如下:GIS系统与应用模型能实现高度无缝的集成;函数库一般都有清晰的接口,GIS开发者不必费力去研究源代码,使用方便,而且函数库经过编译,不会发生因开发者错误地改动源代码而使模型运行结果不正确的情况。
函数库方式的缺点在于:库函数无法与GIS数据有效结合,因而不能用于复杂模型与GIS的集成;由于开发者不能对库函数进行修改,降低了重用的灵活性;函数库的可扩充性差;此外,静态函数的使用还在一定程度上受限于语言,必须依赖于其开发语言。
MapGIS提供完整的二次开发函数库,用户可以在MapGIS平台上运用它开发面向各自领域的应用系统。MapGIS二次开发库的实现被封装于若干动态链接库(DLL)中,独立于开发工具。API函数在使用方法上与Windows的API函数完全一样,无论使用Visual C++、Visual Basic还是BC++、Delphi,GIS应用程序开发者都可以像调用普通的Windows的API函数一样调用MapGIS的API函数。
MapGIS二次开发函数库包括工作区管理函数库、窗口操作函数库、空间分析函数库、图形编辑函数库、图形显示函数库、图像函数库、地图库读取函数库等部分,这些库函数都支持Windows 98、Windows 2000和Windows NT操作系统。
3.独立可执行程序方式重用
现有应用模型中,以可执行程序方式存在者居多。这种模型的重用方式之一是,GIS系统与应用分析模型均以可执行应用程序的方式独立存在,二者的内部、外部结构均不变,相互之间可以切换。二者之间的数据交换通过对共同的统一格式的中间数据文件(如ASCII码文件或通用数据库文件等)的操作实现,GIS系统进一步将中间数据转换为空间数据,以实现GIS本身的空间数据操作功能。这种重用方式的优点在于简便,所需编程工作极少。缺点在于:一是系统效率较低,且使用不很方便;二是界面往往不一致,视觉效果不好。
4.内嵌可执行程序方式重用
这种重用方式本质上与独立可执行程序方式一样,以GIS系统命令驱动应用模型程序,GIS系统与模型之间的集成通过对共同数据文件的读/写操作实现,GIS系统则进一步通过进行中间数据与空间数据的转换来实现空间数据的GIS操作功能。与独立可执行程序重用方式不同的是,尽管GIS系统与模型可能是由不同的编程语言实现的,但是集成系统有基本统一的界面,具有一个无缝集成的操作环境。
Jonkowski和Haddock(1996)实现的非点源污染模型系统即是一个采用嵌入可执行程序方式将GIS与地学模型相结合的典型,该系统基于DOS环境运行,空间数据处理由Arc/Info通过宏语言AML程序实现,农业非点源污染模型(AGNPS)由PASCAL语言编程并编译为可执行程序。系统将一组图层数据经Arc/Info处理后转化为AGNPS的一个数据输入文件,经过AGNPS模型运行处理后,输出数据再转成PC Arc/Info的图层,以满足显示制图等需要,其系统结构图如图1.1所示。
图1.1 农业非点源污染模型(AGNPS)与GIS集成系统的原型结构
内嵌可执行程序重用方式的优点在于:对于开发者,这种重用方式符合软件工程学要求的模块化开发原则,便于开发工作的组织管理,并且系统的运行性能比独立可执行程序方式好;对于用户,这种方式开发出来的集成系统具有基本统一的界面环境,便于操作。这种重用方式的缺点在于:开发人员必须理解模型运行的全部过程,并对复杂的模型要进行正确合理的结构分解,以实现模型与GIS系统本身之间的数据相互转换及模型对GIS功能的调用。相应地,产生的问题便是,在分解原模型时可能产生错误,此外,如果需要同时集成多个模型,要进行模型的组合很困难。
5.DDE或OLE方式重用
DDE指动态数据交换,OLE指对象链接与嵌入,二者均用于Windows应用程序之间的数据传递,可以作为应用GIS开发中的一种可执行程序形式应用模型重用方式。在进行DDE会话或采用OLE方式连接时,必须存在两个主体,一方为客户程序,另一方为服务程序,简单地说,就是要有一方为另一方提供数据服务或更复杂的服务。对于GIS与应用模型的集成来说,就是GIS为客户程序,应用模型为服务程序。DDE或OLE方式重用的优点与内嵌可执行程序相似,系统能实现无缝集成,而所需编程不多(如果要进行GIS与应用模型程序之间的相互操纵,则要采用OLE自动化方式,这种方式需要较多的编程,但这种方式似乎不大可能用于应用模型在应用GIS开发中的重用,因为实际工作中极少需要在应用模型程序中不断地与GIS系统之间相互操纵)。这种方式的不足在于系统效率不高,且系统稳定性不是很好。此外,这种方式要求应用模型必须支持DDE或OLE协议,这是目前绝大多数已开发的各类模型做不到的。
采用OLE方式进行应用模型重用的一个实例是张犁(1996)开发的城市洪水分析与模拟信息系统。在这个系统中,城市洪水分析与模拟模型作为服务程序,一个GIS工具软件系统作为客户程序,二者以OLE方式集成起来。
6.模型库方式重用
模型库指在计算机中按一定组织结构形式存储的各个模型的集合体。模型库系统可以有效地生成、管理和使用模型,它可以支持两种粒度的模型(可执行文件与函数子程序),具有完整的模型管理功能,能够提供单元模型(指不需要调用其他模型的模型)和组合模型(指通过调用其他单元模型或组合模型来构成的模型),同时还支持模型的动态调用和静态链接,使系统具有良好的可扩充性。模型库系统尤其符合客户/服务器模式的系统的运行方式要求。在Client/Server模式的GIS系统中,模型从模型库中被动态地调入内存执行。尽管模型库研究随着决策支持系统的发展在近10年来取得了很大的进展,但是,在模型的操作方面,目前并没有形成完整的理论体系,特别是模型的自动生成、半自动生成方面离真正实用化尚有一段距离。
7.组件模型重用
组件模型指以组件形式存在的应用模型。当前,地理信息系统软件已经或正在发生着革命性的变化,由过去厂家提供全部系统或者有部分二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来,传统的GIS工具软件最终将走向组件化。模型的组件化也将相应成为应用模型开发的主要方式。在组件模型的基础上,还可以进一步制作可重用模型组件库,这将是软件重用技术今后的一个重要发展方向,也将为GIS与应用模型的集成提供一种新的技术手段。
应用模型的重用必须根据模型的存在形式,分别采取不同的重用方式。尽管现有GIS工具软件不支持使用软件组件进行二次开发,但随着组件式地理信息系统的发展与流行,GIS应用系统开发者可以使用可视化编程工具,如Visual C++、Delphi等作为开发平台,利用GIS工具组件与模型组件,开发出高效无缝的应用系统,应用模型的组件化,将极大地促进GIS与应用模型的集成应用,组件模型符合GIS软件组件化这一革命性变化的潮流。因此,组件模型将是最有前途的模型存在形式,而模型组件化将是应用型GIS开发中最有效的模型重用手段。尽管还未见到组件技术应用于地学分析模型开发的实例,但是可以想象,这一技术在地学分析模型开发领域最终会得到广泛应用,并提高GIS中的专业模型应用水平,极大地丰富GIS的应用分析功能。